Таким образом, он выглядит как многоядерный, и все связанные с этим осложнения здесь остаются. Я планирую проект программного обеспечения, который определенно выиграет от parallelism. Проблема в том, что у меня очень мало опыта написания параллельного программного обеспечения. Я изучал его в Университете и очень хорошо понимал концепции и теорию, но у меня не хватило сил использовать полезное программное обеспечение для создания опыта, которое можно было запустить на нескольких процессорах со времени школы.
Итак, мой вопрос: как лучше всего начать работу с многопроцессорным программированием? Я знаком с главным образом развитием Linux в C/С++ и Obj-C на Mac OS X с почти нулевым опытом Windows. Также мой запланированный программный проект потребует БПФ и, возможно, с плавающей точкой сравнения большого количества данных.
Есть OpenCL, OpenMP, MPI, потоки POSIX и т.д. С какими технологиями я должен начать?
Вот пара вариантов стека, которые я рассматриваю, но не уверен, что они позволят мне экспериментировать с моей целью:
- Должен ли я получить Snow Leopard и попытаться получить программы OpenCL Obj-C для запуска выполнение на графическом процессоре ATI X1600 на моем ноутбук? или
- Должен ли я получить Playstation и попробуйте написать код C для бросить через свои шесть доступных ячеек ядра SPE? или
- Должен ли я создать ящик Linux с картой Nvidia и попробуйте работать с CUDA?
Заранее благодарим за помощь.