Получение запускающийся с [закрытого] Параллельного программирования

Определенно поместите GUI в один класс и логику в другом классе или нескольких классах - до самой большой возможной степени. Если Вы будете использовать MVC (Образцовый Контроллер Представления) шаблон, то это произойдет автоматически. Если Вы не сделаете этого, то GUI быстро станет неудобно в сопровождении сложным.

12
задан om-nom-nom 30 October 2012 в 14:42
поделиться

7 ответов

Я бы предложил перейти на OpenMP и Сначала MPI не уверен, что имеет значение, какой выбор вы выберете первым, но вы определенно должны захотеть (на мой взгляд :-)) изучить подходы как с общей, так и с распределенной памятью для параллельных вычислений.

Я предлагаю избегать потоков OpenCL, CUDA, POSIX , для начала: получите хорошее знание основ параллельных приложений, прежде чем начинать разбираться с подструктурой. Например, гораздо легче научиться использовать широковещательные сообщения в MPI, чем программировать их в потоках.

Я бы придерживался C / C ++ на вашем Mac, так как вы уже знакомы с ними, и есть хорошие открытые -исходные библиотеки OpenMP и MPI для этой платформы и этих языков.

И,

4
ответ дан 2 December 2019 в 21:03
поделиться

Если вас интересует параллелизм в OS X, обязательно ознакомьтесь с Grand Central Dispatch , особенно с учетом того, что исходный код этой технологии открыт и скоро может появиться много более широкое распространение.

3
ответ дан 2 December 2019 в 21:03
поделиться

Вам не нужно специальное оборудование, такое как графические карты и ячейки, для параллельного программирования. Ваш простой многоядерный процессор также выиграет от параллельного программирования. Если у вас есть опыт работы с C / C ++ и objective-c, начните с одного из них и научитесь использовать потоки. Начните с простых примеров, таких как умножение матриц или решение лабиринта, и вы узнаете об этих надоедливых проблемах (параллельное программное обеспечение недетерминировано и полно Heisenbugs).

Если вы хотите углубиться в массовый мультипараллелизм, я бы выбрал openCL, поскольку он наиболее переносимый. Cuda по-прежнему имеет большее сообщество, больше документации и примеров, и это немного проще, но вам нужна карта nvidia.

2
ответ дан 2 December 2019 в 21:03
поделиться

Вам следует выучить Erlang . Для большого блага.

2
ответ дан 2 December 2019 в 21:03
поделиться

Традиционное и императивное «общее состояние с блокировками» - не единственный ваш выбор. Рич Хики, создатель Clojure, Lisp 1 для JVM, приводит очень убедительный аргумент против общего состояния. Он в основном утверждает, что исправить это практически невозможно. Возможно, вы захотите прочитать о передаче сообщений, а также о субъектах Erlang или библиотеках STM.

3
ответ дан 2 December 2019 в 21:03
поделиться

Возможно, ваша проблема подходит для парадигмы MapReduce . Он автоматически решает проблемы балансировки нагрузки и параллелизма, исследовательская работа от Google уже является классической. У вас есть реализация на одной машине под названием Mars, которая работает на графических процессорах, это может сработать для вас. Существует также Phoenix, который запускает map-reduce на многоядерных и симметричных мультипроцессорах.

0
ответ дан 2 December 2019 в 21:03
поделиться

Я бы начал с MPI, когда вы узнаете, как работать с распределенной памятью. Книга Пачеко - старая, но полезная вещь, а MPI отлично работает сразу на OS X, обеспечивая довольно хорошую многоядерную производительность.

0
ответ дан 2 December 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: