LINUX.ORG.RU

накидайте простые примеры распараллеливания на фортране

 , ,


1

5

есть некоторая программа на fortran95, которая в бесконечном цикле на каждом шаге которого она последовательно обрабатывает массив «A» его считывая данные маленького из массива «B» и записывает его статистику в массив «C». мне нужно распараллелить программу так, что бы на каждом процессоре считалась своя независимая копия массива «A» , при этом массиы «B» и «C» для них общие. на чём это лучше реализовать? openmp, mpi? если кто ни будь подкинет минимальный рабочий пример, буду премного благодарен.

★★★★★

Последнее исправление: thunar (всего исправлений: 1)

Openmp более высокого уровня библиотека, чем mpi. Соответственно, программировать проще, но контроля над процессом меньше.

yvv ★★☆
()
Ответ на: комментарий от yvv

Openmp не обменивается сообщениями, что составляет 75% всего функционала и костылей MPI. Посему и проще. А если копать вглубь, то скелетов в шкафу достаточно и там, и там.

DarkAmateur ★★★★
()

Если речь идёт о системе с общей памятью, то MPI не нужен, достаточно будет просто пару директив компилятору написать, гугли PARALLEL DO и обращай внимания на атрибуты для перемнных - для твоего случая общие PRIVATE(B,C) и локальные SHARED(A). Советую ifc, который под Линукс халявный.

кстати, оператор FORALL нормальный компилятор распаралеллит при возможности и обычные DO тоже, но контроля над этим у тебя не будет

WerNA ★★★★★
()
Ответ на: комментарий от WerNA

ну фораллы то я и так использую, там где можно.

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

ifc

что это? гуголь какую то ересь находит

thunar ★★★★★
() автор топика
Последнее исправление: thunar (всего исправлений: 2)
Ответ на: комментарий от WerNA

так это тогда ifort. а где бесплатную достать? последний раз, когда его пытался скачать с меня 1000$ требовали

thunar ★★★★★
() автор топика
Последнее исправление: thunar (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.