Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - C#----> Gestione Processori
Forum - C# / VB.NET - C#----> Gestione Processori

Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 16:21
Lunedì, 10/05/2010
Ciao a tutti... sto portando avanti il mio progetto: TasmIDE;
volevo trovare un modo per eseguirlo su più core contemporaneamente per migliorare la velocità del software.
fino ad adesso ho trovato solo il modo di farlo eseguire su due core!
il mio problema è: se il computer ha più core sfruttabili? e se non dovesse avere due core ma solo uno?  :rotfl:

ecco la porzione di codice:      
// Programmatically set process affinity
var process = System.Diagnostics.Process.GetCurrentProcess();  
// Set Core 2
process.ProcessorAffinity = new IntPtr(0x003);

come devo modificare il codice per fare si che rilevi i core disponibili e si setti automaticamente per utilizzare tutti i core???

ho il .netFramework 3.5 sp1 e sto svilppando in C#.Net 2008
Grazie in anticipo a tutti!!!  :k::k:

Ultima modifica effettuata da TheEngi il 10/05/2010 alle 16:23


The Engineer
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 2:37
Martedì, 11/05/2010

allora, una cosa è l'affinity del processore che permette al codice di un programma ad essere eseguito su più core, un'altra è l'effettivo utilizzo dei core e la parallelizzazione del codice.

se bastasse impostare un numeretto per far diventare il codice multithread non credi che questa cosa sarebbe stata fatta nativamente?

se vuoi parallelizzare il tuo codice devi trovare un modo per scomporre il tuo workload in più task eseguibili in parallelo i cui risultati parziali non siano interdipendenti.

non tutti gli algoritmi si prestano bene alla parallelizzazione, dipende dai casi e da cosa vuoi fare.


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 9:53
Martedì, 11/05/2010
dovresti puntare sul linguaggio microsoft F# che se non erro permette la gestione del multi-core.


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 11:21
Martedì, 11/05/2010
Testo quotato

Postato originariamente da lorenzo:

dovresti puntare sul linguaggio microsoft F# che se non erro permette la gestione del multi-core.



ma che vuol dire, tutti i linguaggi permettono il "multi core", come lo chiami te.

poi ci sono linguaggi che offrono costrutti e strumenti più o meno integrati, ma non si scappa dalla programmazione multithread...


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 13:24
Martedì, 11/05/2010
mi sembrava sottointeso..........permette la gestione del multi-core in modo più semplice e rapido che negli altri linguaggi. Dopotutto è stato creato apposta per questo.


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:53
Martedì, 11/05/2010
Se F# è per .NET, allora anche gli altri linguaggi .NET offrono le stesse possibilità di programmazione parallela.

@TheEngi: impostare l'affinità di un processo non assicura che il suo codice venga eseguito dal core specificato.
Ma che linguaggio è quello? J#? E' la prima volta che vedo qualcuno postare una discussione in questo linguaggio XD


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:46
Martedì, 11/05/2010
Testo quotato

Postato originariamente da Il Totem:

Ma che linguaggio è quello? J#? E' la prima volta che vedo qualcuno postare una discussione in questo linguaggio XD



no, semplicemente ha usato (a sproposito) i tipi impliciti di .net 3.X


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:18
Mercoledì, 12/05/2010
Ah giusto, in C# si dovevano inventare qualcosa per rimpiazzare l'assenza di tipo.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 18:18
Mercoledì, 12/05/2010
Testo quotato

Postato originariamente da Il Totem:

Ah giusto, in C# si dovevano inventare qualcosa per rimpiazzare l'assenza di tipo.  



beh è stata un'ottima idea, le variabili a tipo implicito sono la manna dal cielo con linq :)


Ingegnere Informatico
https://ldlagency.it
PM Quote