Oppure

Loading
30/09/11 16:57
Scusa, ma indipendentemente da processi o thread, il tuo problema è parallelizzabile?

30/09/11 17:01
cosemale
Non è parallelizzabile in quanto dovrei stravolgere il codice di partenza (questo non lo posso fare) per questo ho abbandonato i thread per cercare strade alternative.
Ho optato per il fork in quanto crea un nuovo spazio di indirizzamento.
Quindi come se lanciassi l'applicazione da + macchine diverse in cui ognuna svolge una parte del lavoro.


C'è un modo alternativo?
aaa
30/09/11 17:03
Calma ... c'è un po' di confusione.

Se puoi lanciare l'applicazione da più macchine e svolgere "parte del lavoro" allora l'operazione complessiva è parallelizzabile e puoi usare la CreateProcess tranquillamente.
30/09/11 17:06
cosemale
Forse non mi sono spiegato bene.
Io non voglio lanciare la mia applicazione da più macchine ma vorrei che la stessa applicazione crei dei processi figli completamente indipendenti ovvero che ogni processo utilizzi una copia indipendente dello spazio di indirizzamento.

aaa
30/09/11 17:13
Postato originariamente da cosemale:

Forse non mi sono spiegato bene.
Io non voglio lanciare la mia applicazione da più macchine


Lo avevi supposto tu ...

ma vorrei che la stessa applicazione crei dei processi figli completamente indipendenti ovvero che ogni processo utilizzi una copia indipendente dello spazio di indirizzamento.


I processi li puoi creare con CreateProcess, ma lo spazio di indirizzamento non sarà una copia del processo che li crea. Però potresti crearli passando tutte le informazioni che servono inizialmente per impostare lo stato iniziale che vuoi tu.
03/10/11 15:46
cosemale
Sto utilizzando CreateProcess per creare diversi processi che eseguono la mia applicazione.

E' possibile ottenere l'output dell'esecuzione senza scrivere su file???
aaa
03/10/11 17:13

E' possibile ottenere l'output dell'esecuzione senza scrivere su file???


Puoi usare la API OutputDebugString per scrivere sull'output di un debugger (come DbgView)
04/10/11 15:14
cosemale
Scusami ma mi sono spiegato male.
Io ho un processo padre che crea diversi processo figli tramite CreateProcess.
Il processo padre passa, tramite linea di comando, un valore numerico ai diversi figli.
Il processo figlio deve effettuare la radice quadrata e deve restituire al padre il risultato dell'operazione.

Il processo padre alla fine deve effettuare la somma di tutte le radici quadrate.

Il programma che esegue ciascun processo figlio è una GUI.

Come posso fare ciò, senza che ciascun figlio scriva su un file di testo?



aaa