Quindi sembra multicore e tutte le sue complicazioni associate sono qui per rimanere. Sto pianificando un progetto software che trarrà sicuramente vantaggio dal parallelismo. Il problema è che ho pochissima esperienza nella scrittura di software concorrenti. L'ho studiato all'università e ho capito molto bene i concetti e la teoria, ma non ho le mani su esperienze utili per costruire software da utilizzare su più processori sin dalla scuola.Iniziare con la programmazione parallela
Quindi la mia domanda è, qual è il modo migliore per iniziare con la programmazione multiprocessore? Conosco principalmente lo sviluppo di Linux in C/C++ e Obj-C su Mac OS X con un'esperienza Windows quasi zero. Anche il mio progetto software pianificato richiederà FFT e probabilmente confronti a virgola mobile di molti dati.
Esistono i thread OpenCL, OpenMP, MPI, POSIX, ecc. Quali tecnologie dovrei iniziare?
Qui ci sono un paio di opzioni pila sto considerando, ma non sono sicuro se mi lasceranno esperimento di lavoro verso il mio obiettivo:
- Dovrei avere Snow Leopard e cercare di ottenere i programmi OpenCL Obj-C per eseguire l'esecuzione sulla GPU ATI X1600 sul mio laptop ? oppure
- Devo procurarmi una Playstation e provare a scrivere il codice C su attraverso i suoi sei core Cell SPE disponibili? o
- Devo compilare una scatola Linux con una scheda Nvidia e provare a lavorare con con CUDA?
Grazie in anticipo per il vostro aiuto.
Installare VS2010 o 2012 sotto Windows, avviarlo, passare a F # interattivo e digitare 'Array.map ((+) 3) [| 1..10 |]'. Hai scritto un programma F # seriale. Quindi digitare 'Array.Parallel.map ((+) 3) [| 1..10 |]'. Sei in programmazione parallela. –