Страница 1 из 1

FreePascal и MPI

СообщениеДобавлено: 06.03.2019 13:32:40
Vadim
Выложил заголовочный файл для FreePascal библиотеки MPICH.

https://github.com/VadimAnIsaev/FreePascal-MPI

теперь и мы можем во всю калякать многопроцессные приложения. :-D
Старый заголовочный файл, который прилагался к этой статье:
http://www.freepascal.ru/article/raznoe/20051207110629
к сожалению неработоспособен. Там нужны небольшие правки для его исправления. Я решил сделать новый модуль.
Делался на основе последней версии MPICH - 3.3. Пока что включены только те функции, которые начинаются с префикса "MPI_", т.е. по которым написаны все без исключения учебники. Остальное будет по мере возникновения необходимости.
Пока не включил туда функции по работе с файлами. По сравнению с предыдущими версиями тип данных, на основе которого работают эти функции, стал ужасно сложным. Раньше он был просто тип Integer, а сейчас это очень сложная разветвлённая конструкция из нескольких типов RECORD, один из которых содержит пару десятков функций. Пока что не вижу в этой фиче необходимости, поэтому доделаю по мере того, как будет на это время.
Для *NIX библиотеку mpich можно установить из репозитория вашей ОС. Для Windows её нужно взять со странички Microsoft:
https://docs.microsoft.com/en-us/messag ... rosoft-mpi
т.к. сама MPICH бинарную библиотеку для винды не делает. Я пробовал скомпилировать из исходников - не получилось. Ошибка на стадии запуска скрипта configure.
Так же по первой ссылке есть парочки примеров:
- классический HelloWorld;
- расчёт числа PI.
Потом ещё что-нибудь из примерчиков выложу.

Модуль пока что на 100% не протестирован. Если кто-то возьмётся и будет писать сюда замечания - будет отлично... ;-)

В недалёком будущем на нашем сайте появится статья про это дело...

Re: FreePascal и MPI

СообщениеДобавлено: 19.03.2019 13:48:43
Vadim
Добавлено для MPICH:
- функции для файловых операций. Сделал отдельным модулем, т.к. пока ещё ни разу не видел, чтобы эти функции где-то в проектах применялись :-) ;
- включаемый файл с переработанными сишными макросами. Теперь они представлены в виде функций.