Parece multinúcleo y todas sus complicaciones asociadas llegaron para quedarse. Estoy planeando un proyecto de software que definitivamente se beneficiará del paralelismo. El problema es que tengo muy poca experiencia en escribir software concurrente. Lo estudié en la Universidad y entiendo muy bien los conceptos y la teoría, pero tengo cero experiencia en la experiencia útil en la creación de software para ejecutar en múltiples procesadores desde la escuela.Comenzando con la programación paralela
Así que mi pregunta es, ¿cuál es la mejor manera de comenzar con la programación multiprocesador? Estoy familiarizado principalmente con el desarrollo de Linux en C/C++ y Obj-C en Mac OS X con casi cero experiencia en Windows. Además, mi proyecto de software planificado requerirá FFT y probablemente comparaciones en coma flotante de una gran cantidad de datos.
Hay hilos OpenCL, OpenMP, MPI, POSIX, etc ... ¿Con qué tecnologías debería empezar?
Estas son unas opciones de pila par que estoy considerando, pero no estoy seguro si me dejan experimento en el trabajo hacia mi objetivo:
- ¿Debo obtener Snow Leopard y tratar de obtener programas OpenCL Obj-C para ejecutar ejecución en la GPU ATI X1600 en mi computadora portátil ? o
- ¿Debo obtener una Playstation e intentar escribir el código C en con sus seis núcleos Cell SPE disponibles? o
- ¿Debo construir una caja Linux con una tarjeta Nvidia y trato de trabajar con CUDA?
Gracias de antemano por su ayuda.
Instale VS2010 o 2012 en Windows, inícielo, vaya a F # interactivo y escriba 'Array.map ((+) 3) [| 1..10 |]'. Has escrito un programa serial F #. Luego escriba 'Array.Parallel.map ((+) 3) [| 1..10 |]'. Eres una programación paralela. –