PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Intel Quad Q6600 und Multithreading in c



nomad
01-06-2008, 09:57
Betr: Intel Quad Q6600 und Multithreading in c

hi leute,

hab mir vor 3 tagen einen Intel Quad Q6600 mit 4GB-Ram
gekauft.

ich programmiere seit laengerm mit C.
und wuerde micht interessieren. wie
ich folgendes machen koennte.

- multithreading mit 4 prozessoren unter c
- zum beispiel einzlne threads auf bestimmte
porzessoren zuweisen?

- beschaeftige mich im augenblick mit simulationen
von lernfaehigen-neuralen-netzwerken.
unter c mit gtk/sdl/opengl

- gibts zum multithreading mit Quads irgendwelche
dokus (ev. von intel selbst) oder
code-schnippsel
oder erfahrungs-berichte?

ueber hinweise, tips wuerde ich mich freuen.
gruss nomad

jeebee
01-06-2008, 11:17
Multithreading mit 4 Prozessoren: 4 pthreads, dann wird jeder Thread von einem eigenen Core ausgeführt.

Threads zu Prozessoren (Cores) zuweisen: geht afaik nicht bei SMP (Symmetric Multiprocessing).

Grobkörnige Parallelisierung mit geringem Aufwand: OpenMP

nomad
01-06-2008, 15:49
hi jeebee,
vielen dank fuer deine antwort:
hab auf der Installations DVD stuff von openMP gefunden und mal installiert.
vielen dank
gruss nomad

jeebee
01-06-2008, 17:51
Für deinen Zweck ist wohl der Ansatz mit
#pragma omp section geeignet. Die andere Variante ist mehr für Mathematik (#pragma omp for)

edit: möglicherweise heissen die pragmas ein bisschen anders.

nomad
02-06-2008, 10:40
hi jeebee
danke fuer die hinweise.
im augenblick gehts bei mir drunter und drueber.
werd mich mal dann einlesen, hab schon etliche dokus fuer openMP und PThreads
gefunden.
Was waere deiner meinung nach fuers erste besser (und ev. einfacher)
PTHREADS oder openMP?
nochmals vielen dank
gruss
nomad

jeebee
02-06-2008, 15:19
OpenMP ist einfacher im Code (es wird dir mehr Kleinarbeit abgenommen) hat aber auch Nachteile die zu grösserem Overhead führen (z.B. gibt es nur ein globales Lock...). Für Dinge die viel Kontrolle über die Struktur der Threads etc. brauchen würde ich eher pthreads verwenden. Um grosse for-loops zu parallelisieren eher OpenMP.

nomad
03-06-2008, 10:37
hi
jeebee
vielen dank fuer deine hinweise
sobald das thema spruchreif ist und ich verstaendnis probleme hab
meld ich mich wieder
gruss
nomad