Таким образом, это похоже на многоядерность и все связанные с этим осложнения здесь, чтобы остаться. Я планирую проект программного обеспечения, который определенно выиграет от параллелизма. Проблема в том, что у меня очень мало опыта написания параллельного программного обеспечения. Я изучал его в Университете и очень хорошо понимал концепции и теорию, но не имел ни малейшего опыта в разработке программного обеспечения для создания полезного опыта для работы на нескольких процессорах со времени школы.Начало работы с параллельным программированием
Итак, мой вопрос в том, как лучше всего начать с многопроцессорного программирования? Я знаком с главным образом развитием Linux в C/C++ и Obj-C на Mac OS X с почти нулевым опытом Windows. Также мой запланированный программный проект потребует БПФ и, возможно, с плавающей точкой сравнения большого количества данных.
Есть OpenCL, OpenMP, MPI, потоки POSIX и т. Д. С какими технологиями я должен начать?
Вот несколько вариантов стека я рассматриваю, но не уверен, что они дадут мне эксперимент в работе над своей целью:
- Должен ли я получить Snow Leopard и попытаться получить программы OpenCL Obj-C в запустить выполнение на графическом процессоре ATI X1600 на моем ноутбуке? или
- Должен ли я получить PlayStation и попробовать написать код C до бросить через свои шесть доступных ячеек ядра SPE? или
- Должен ли я построить ящик Linux с картой Nvidia и попробовать работать с CUDA?
Заранее за вашу помощь.
Установите VS2010 или 2012 под Windows, запустите его, перейдите в F # interactive и введите 'Array.map ((+) 3) [| 1..10 |]'. Вы написали серийную программу F #. Затем введите 'Array.Parallel.map ((+) 3) [| 1..10 |]'. Вы параллельно программируете. –