Параллельная многопоточная машина ( PM2 ) — это программное обеспечение для параллельного объединения компьютеров в сеть.
PM2 — это распределенная многопоточная среда программирования с открытым исходным кодом, разработанная для поддержки эффективно распределенных программ с крайне нерегулярным поведением (например, поиск ветвей и границ , вычисления на разреженных матрицах и т. д.) на распределенных архитектурах. Распространяется под лицензией GPL .
PM2 придерживается модели программирования SPMD ( Single Program Multiple Data ), что очень похоже на библиотеки связи PVM и MPI. Пользователь пишет один текст программы, копия которого запускается определенной командой загрузки на каждом узле обработки текущей конфигурации. Программист должен включить ветвление, чтобы различать узлы обработки. Таким образом, он позволяет использовать сеть разнородных машин как один распределенный параллельный процессор.
Он в первую очередь предназначен для кластеров среднего размера узлов обработки товаров, соединенных между собой высокопроизводительными сетями, но ничто не мешает использовать его на машинах MIMD с массовым параллелизмом на одном конце спектра или в качестве поддержки метавычислений через Интернет на другом конце. Он поддерживает гетерогенные сетевые конфигурации, такие как наборы взаимосвязанных кластеров.
Отличительные особенности PM2 включают его приоритетно-управляемую политику планирования, его механизмы миграции потоков и его способность облегчать разработку различных политик балансировки нагрузки. Он может управлять несколькими сотнями потоков на каждом доступном физическом процессоре. Интерфейс PM2 предоставляет функциональные возможности для управления этой высокой степенью параллелизма и для динамической балансировки нагрузки.
Подсистема управления потоками PM2 называется Marcel (в честь Марселя Пруста ), а ее коммуникационная подсистема — Madeleine , французская сладость, которая, как предполагается, сыграла центральную роль в жизни Марселя Пруста . PM2 обладает дополнительной функциональностью, которая обеспечивает потокам единообразный доступ к данным, независимо от их физического расположения. Она называется DSM-PM2.
PM2 работает на большинстве платформ Unix .
PM2 разрабатывается в LaBRI (Laboratoire Bordelais de Recherche en Informatique), исследовательской лаборатории, расположенной в Бордо, Франция, при совместной поддержке INRIA, CNRS и Университета Бордо. До этого PM2 был разработан в LIP (Laboratoire de l'Informatique du Parallélisme), исследовательской лаборатории, расположенной в ENS Lyon (Ecole Normale Superieure de Lyon), Франция, при совместной поддержке INRIA, CNRS и Университета Клода Бернара Лиона. . Первоначально PM2 был разработан Раймоном Намистом и Жаном-Франсуа Мехо в LIFL Университета Лилля, Франция.