OpenMP во FreePascal

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Нужно ли добавить поддержку OpenMP в FreePascal?

Обязательно нужно
2
18%
Скорее ДА чем НЕТ
5
45%
Скорее НЕТ чем ДА
1
9%
А ну его...
2
18%
Мне всё равно
1
9%
 
Всего голосов : 11

Re: OpenMP во FreePascal

Сообщение olegy123 » 04.08.2017 16:20:29

Intel-овцы ругали OpenMP просили приобщится к tbb
https://www.threadingbuildingblocks.org/
olegy123
энтузиаст
 
Сообщения: 525
Зарегистрирован: 25.02.2016 12:10:20

Re: OpenMP во FreePascal

Сообщение Vadim » 04.08.2017 19:04:55

sts писал(а):OpenMP делает столько задач сколько доступно потоков...

Либо меньше, если это указал (вручную) программист. ;-) Правда ручной режим мало кто использует, доверяя тому, сколько вычислительных ядер обнаружил OpenMP, тем не менее, ручная организация кол-ва потоков там тоже доступна.
Надо сказать, что многопоточность в OpenMP организовывается намного проще, чем с применением MPI. Другое дело, что MPI - это чисто сторонняя библиотека и от компилятора не зависит. Правда завести в FPC MPI мне так и не удалось, несмотря на правильное описание заголовков функций, единственное, что у меня работало, это MPI_Init() и MPI_Finalize(), на всё остальное выплевывалась ошибка 216. :-D
Так что над параллельностью в FPC надо хорошо подумать. А то одна сплошная печаль...

Добавлено спустя 4 минуты 17 секунд:
olegy123 писал(а):Intel-овцы ругали OpenMP просили приобщится к tbb

Пугает С++шная реализация...
Vadim
долгожитель
 
Сообщения: 2577
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: OpenMP во FreePascal

Сообщение Mirage » 05.08.2017 20:34:47

Пихать крит. секции и пулы потоков в синтаксис языка ни к чему. Все прекрасно реализуется на уровне библиотек.
Ценность горутин в том, что это т.н. зеленый поток, т.е. в рамках одного потока несколько зеленых работают по очереди. В нативных языках нормально их не реализовать все равно. Да и в ненативных есть проблемы.
Вот библиотека хорошая на тему многопоточности нужна. Типа как Omnithread для Delphi, но кроссплатформенная. Вот эта вполне серьезный претендент, но руки никак не доходят поиграть с ней.
Mirage
энтузиаст
 
Сообщения: 746
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: OpenMP во FreePascal

Сообщение serbod » 06.08.2017 21:20:42

Посмотрел PasMP, хороший пример того, как не надо делать.

- Полное отсутствие документации. Есть только общее описание возможностей.
- Сложно разобраться даже в секции interface, огромное количество ifdef.
- Все-в-одном-файле
- Примеры нечитаемые, даже сраный Фибоначчи сделан с приведением указателей на указатели и прочими сишными фокусами. Внутри самой библиотеки такое допустимо, но небезопасный код даже в простых примерах - это однозначно нет.

Вроде и работа серьезная проделана, и хочется помочь автору сделать лучше и проще. Но большинство этого добра уже есть в стандартных модулях, хорошо документировано и просто в использовании. И я не вижу особых преимуществ у PasMP, оно может и эффективнее, но банально неудобно и небезопасно.
Аватара пользователя
serbod
постоялец
 
Сообщения: 125
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Пред.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru
cron