Какие API параллельного программирования Вы используете? [закрытый]

Вы можете использовать getattr:

tracking_refs = ['Touches','DefensiveImpact']
for x in tracking_refs:
    print(getattr(TrackingMeasure, x))
16
задан jakobengblom2 3 October 2008 в 18:45
поделиться

19 ответов

Это не параллель как таковая и не имеет распределенной модели, но вы можете написать очень параллельный код на JVM с использованием Clojure. Впоследствии вы получаете множество доступных вам библиотек Java. Вы должны будете реализовать свои собственные параллельные алгоритмы поверх clojure, но это должно быть относительно легко. Повторяю, у еще нет распределенной модели.

0
ответ дан 30 November 2019 в 17:17
поделиться

pycuda ... ничего похожего на 25000 активных тем :) [варп запланирован с табло]. У cuda 2 есть потоковая поддержка, поэтому я не уверен, что принесет streamit. Расширения CUDA Matlab выглядят аккуратно, так же как и PLUTO и ближайшие PetaBricks из MIT.

, поскольку другие, потоки Python отсутствуют; MPI и т. Д. Сложны, и у меня нет кластера, но я полагаю, они достигают того, для чего они созданы; Я остановил программирование на c # прежде, чем занялся нитью квартир (вероятно, это хорошо).

0
ответ дан 30 November 2019 в 17:17
поделиться

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

0
ответ дан 30 November 2019 в 17:17
поделиться

Я использовал OpenMP много главным образом из-за его простоты, мобильности и гибкости. Это - поддержки mulitple языки даже всемогущий C++/Cli:)

0
ответ дан 30 November 2019 в 17:17
поделиться

Я только знаю Java до сих пор, много поддержка поточной обработки там работала хорошо на меня..

0
ответ дан 30 November 2019 в 17:17
поделиться

Я поддерживаю блог ссылки параллелизма, который касался набора их со временем (и продолжит делать так):

http://concurrency.tumblr.com

0
ответ дан 30 November 2019 в 17:17
поделиться

Большинство параллельных программ, которые я записал, было в Ada, который имеет полную поддержку параллелизма исходно на языке. Одно из хороших преимуществ этого - то, что Ваш параллельный код является портативным к любой системе с компилятором Ada. Никакая специальная библиотека не требуется.

1
ответ дан 30 November 2019 в 17:17
поделиться

+1 для потоков PLINQ

Win32, пула потоков и волокон, синхронизирующих объектов

0
ответ дан 30 November 2019 в 17:17
поделиться

Как насчет Открывают CL ?

1
ответ дан 30 November 2019 в 17:17
поделиться

Для.Net я использовал с большим успехом RetLang. Для JVM Масштаб является большим.

1
ответ дан 30 November 2019 в 17:17
поделиться

Больше Haskell Параллели Данных был бы хорош, но даже без него, GHC> 6.6 имеет некоторую впечатляющую способность параллелизировать алгоритмы легко, через Управление. Параллель .Strategies.

2
ответ дан 30 November 2019 в 17:17
поделиться

Знайте, что ответы здесь не будут статистически представительным ответом на "фактическое использование". Уже я вижу, что много "X являются хорошими" ответами.

я лично использовал Windows Threads на многих проектах. Другой API, который я видел в широком использовании, является pthreads. На передней стороне HPC к MPI все еще относятся серьезно люди, использующие его <subjective>, я не делаю - это комбинирует всю элегантность C++ с производительностью JavaScript. Это выживает, потому что нет никакой достойной альтернативы. Это проиграет плотно двойным машинам NUMA на одной стороне, и карта стиля Google - уменьшают на другом. </subjective>

2
ответ дан 30 November 2019 в 17:17
поделиться

Параллельная Библиотека FX (PFX) - управляемая библиотека параллелизма, разрабатываемая сотрудничеством между Microsoft Research и командой CLR в Microsoft для включения с будущим пересмотром Платформы.NET. Это состоит из двух частей: Найдите что-либо подобное LINQ (PLINQ) и Библиотеке параллели задачи (TPL). Это также состоит из ряда Структур данных координации (CDS) - ряд структур данных раньше синхронизировал и координировал выполнение параллельных задач. Библиотека была выпущена как CTP 29 ноября 2007 и обновилась снова в декабре 2007 и июне 2008.

Не очень испытывают хотя...

2
ответ дан 30 November 2019 в 17:17
поделиться

Я использовал ACE, чтобы позволить разработчикам использовать POSIX (или окна) поточная обработка стиля на любой платформе.

3
ответ дан 30 November 2019 в 17:17
поделиться

Мы начали смотреть параллельные расширения от Microsoft - не в выпуске все же, но конечно показывает потенциал.

4
ответ дан 30 November 2019 в 17:17
поделиться

Я рекомендовал бы OpenMP. Microsoft поместила его в компилятор Visual C++ 2005 года так его хорошо поддерживаемый, и Вы ничего не должны делать кроме компиляции с/omp директивой.

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

Вы могли попробовать Cilk ++ , который выглядит хорошим, и имеет электронную книгу , "Как Пережить Многоядерный Оборот программного обеспечения" .

Оба этих вида системы пытаются параллелизировать последовательный код - т.е. взять для цикла выполнение это на всех ядрах одновременно столь же легким возможным способом. Они не имеют тенденцию быть библиотеками потока общего назначения. (например, научно-исследовательская работа (PDF) описала производительность различных типов пулов потоков, реализованных в openMP, и предложила, чтобы 2 новых операции были добавлены к нему - урожай и сон. Я думаю, что они упускают суть OpenMP немного там)

, Поскольку Вы упомянули OpenMP, я предполагаю, что Вы говорите о собственном C++, не C# или.NET.

кроме того, если люди HPC (кого я принимаю, эксперты в этом виде домена), кажется, используют OpenMP или MPI, тогда это - то, что необходимо использовать, не, каковы читатели ТАК!

6
ответ дан 30 November 2019 в 17:17
поделиться

Очень зависит от Вашей среды.

Для palin старого C ничто не бьет POSIX.

Для C++ существует очень хорошая библиотека поточной обработки с BOOST.ORG бесплатно.

Java просто используют собственную поточную обработку Java.

можно также посмотреть на другие способы достигнуть параллелизма кроме поточной обработки, как деление приложения в процессы клиента и сервера и использование асинхронной передачи сообщений для передачи. Сделанный правильно это может увеличиться тысячам пользователей на десятках серверов.

также ценность remebdering, что при использовании Windows MFC, Gnome или спокойной оконной среды Вы находитесь автоматически в многопоточной среде. При использовании Apache МКС или J2EE приложение уже работает в многопоточной среде мультипроцесса.

1
ответ дан 30 November 2019 в 17:17
поделиться

MPI не так тверд, как большинство заставляет его казаться. В наше время я думаю, что подход мультипарадигмы подходит лучше всего для параллельных и распределенных приложений. Используйте MPI для своего узла к коммуникации узла и синхронизации и или OpenMP или PThreads для Вашего большего количества детализированного распараллеливания. Думайте MPI для каждой машины, и OpenMP или PThreads для каждого ядра. Это, казалось бы, масштабировалось бы немного лучше, чем порождение нового MPI Proc для каждого ядра для ближайшего будущего.

, Возможно, для двойного или четырехъядерного прямо сейчас, порождая proc для каждого ядра на машине не будет иметь так много служебным, но поскольку мы приближаемся к все большему количеству ядер на машину, где кэш и на умирает, память не масштабируется так же, было бы более уместно использовать модель общей памяти.

10
ответ дан 30 November 2019 в 17:17
поделиться

gthreads из библиотеки glibc http://library.gnome.org/devel /glib/stable/glib-Threads.html компилируется до pthreads, чтобы не потерять производительность. Они также предоставляют очень мощные пулы потоков и очереди сообщений между потоками. Я успешно использовал их несколько раз и был очень доволен доступными функциями.

0
ответ дан 30 November 2019 в 17:17
поделиться
Другие вопросы по тегам:

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