Vai al contenuto

Sfruttare la potenza del multiprocessore

Ormai tutte le CPU sono multiprocessore. Vediamo come e quando sfruttare questa caratteristica.

Se dobbiamo eseguire più attività in parallelo possiamo utilizzare i Thread, ma gestirli non è semplice e può portare facilmente ad errori. In Xojo i Thread sono di tipo cooperativo, per cui sono più semplici da gestire ed utilizzare. Per contro vengono eseguiti sullo stesso Core del programma principale.

Se siamo nella necessità di dover svolgere attività in reale parallelo possimo utilizzare delle applicazioni Console di supporto, che essendo indipendenti vengono eseguite ognuna su un proprio Core, ottenendo un vero parallelismo anche nelle applicazioni Xojo.

Tra gli esempi possiamo trovare un progetto relativo a questo. In realtà sono due progetti entrambi nella cartella Console/Multiprocessing/

La prima applicazione, WordCounter, è il progetto di un’applicazione Console che dato un file di testo restituisce il numero di parole che lo compongono.

La seconda applicazione, WordCounterGUI, è il progetto di un’applicazione Desktop, che mostra la differenza nell’esecuzione del Task di conteggiare la parole in alcuni file utilizzando un approccio con un metodo, con un Thread e con l’uso di un’applicazione Console.

Chiaramente questo è un esempio e non necessariamente il processo da generare deve essere un’applicazione Console Xojo. Ci sono utenti che hanno utilizzato questo metodo per complessi calcoli su immagini ottenendo una resa, nell’applicazione Xojo, praticamente in tempo reale.