Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на ФОРТРАН, как общего так и конкретного характера.
Постарайтесь дать как можно больше информации о возникшей проблеме -- это в конце концов в ваших же интересах чтобы вам помогли...

прежде чем просить помощи в задании
платное решение задач

ресурсы этого топика
ссылка на подборку ресурсов, собранных посетителями этого форума
 
то, чем мы решили поделиться
ссылка на страничку программ etc собственного изготовления, которыми любезно делятся наши форумчане


если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим
 
просьба к пишущим и отвечающим все большие листинги оформлять тегом more
и отключать графические смайлики при размещении фортран-кода

Всего записей: 24106 | Зарегистр. 06-12-2002 | Отправлено: 18:11 14-01-2007 | Исправлено: akaGM, 09:47 01-03-2020
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karakurt2

Цитата:
у Бартеньева в книгах было как

Я все таки за то, чтобы делать правильно через  iso_c_binding да bind(C)  ( здесь или в стандарте)

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 12:41 26-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
конечно...
тем более, это теперь вроде как стандарт, пусть и недопринятый...

Всего записей: 24106 | Зарегистр. 06-12-2002 | Отправлено: 13:15 26-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
удалил (перенес в соответствующую тему)

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 18:03 26-10-2011 | Исправлено: Igorr, 18:17 26-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
зря перенёс...
тут как раз terminat0r, FuzzyLogic и, по-моему, ХРЕНОМЕТР -- злостные "параллельщики" :)

Всего записей: 24106 | Зарегистр. 06-12-2002 | Отправлено: 18:31 26-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Цитата:
зря перенёс...
Да? Ну тогда http://forum.ru-board.com/topic.cgi?forum=93&topic=0636&start=260#12 - вопрос по книгам о параллелизации (по компьютерам).

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 18:41 26-10-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr

Цитата:
удалил (перенес в соответствующую тему)

Соответствующую тему я не нашёл, посему пооффтоплю тут...
 

Цитата:
Кто-нибудь использует на практике MPI, связку OpenMP/MPI или ClusterOpenMP?
Интересует: какие буквари (en) по этим технологиям наиболее эффективны с точки зрения минимизации затраченного на них времени изучения и максимизации получаемых знаний для реализации на практике? (Вначале предполагается использовать несколько писишек в локальной сети.)

 
Имхо если именно по технологиям, то имхо доки на openmp.org / open-mpi.org вполне достаточны, технологии сами по себе не сильно сложны и доки + пара примеров обычно дают необходимый результат.
Если сильно хочется именно букварь, то вот например: ISBN-13: 978-1558603394
 
А вот если по параллельным вычислениям, то вот тут уже всё очень обширно и сильно зависит от задач.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 18:43 26-10-2011 | Исправлено: FuzzyLogic, 18:44 26-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
ответил в http://forum.ru-board.com/topic.cgi?forum=93&topic=0636&start=260#12

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 18:59 26-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
лучше бы здесь, тема-то ничуть не оффтопная...
там книги, а здесь обсуждение...

Всего записей: 24106 | Зарегистр. 06-12-2002 | Отправлено: 19:04 26-10-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
Соглашусь с akaGM тема явно не для поиска книг, так вот...
 
Параллелизм и технологии это несколько разные вещи, ну вроде как резьба по дереву и лобзик. Первое это теория о том как можно распределять задачи, балансировка, типы параллелизма, архитектуры, методы и что для каких задач подходит. Второе это конкретные инструменты (библиотеки) для решения определённого типа задач. OpenMP для распараллеливания с общей памятью, MPI с раздельной. Я бы даже сказал что класс задач решаемых OpenMP (с общей памятью) это подмножество класса задач решаемых MPI (с раздельной), поэтому MPI более гибкий, OpenMP ограничен, но писать под него проще.  Кстати если речь идёт о более чем одном компьютере, то OpenMP отпадает сразу.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 19:24 26-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
злостные "параллельщики"
Я ради эксперимента несколько месяцев назад внедрил OpenMP на домашнем ПК по случаю перехода на 4-х ядерник - так оно стало считать в 4(!) раза быстрее. Теперь OpenMP для меня как неотъемлемая часть фортрана.

Цитата:
лучше бы здесь
Да я не против; был бы результат.
 
Добавлено:
FuzzyLogic

Цитата:
если речь идёт о более чем одном компьютере, то OpenMP отпадает сразу.
А как же связка OpenMP/MPI и ClusterOpenMP?

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 19:26 26-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
да я же в кавычках...
наоборот, сам хочу послушать людей, кот. что-то из этой области конкретное своими руками делают...

Цитата:
по случаю перехода на 4-х ядерник - так оно стало считать в 4(!) раза быстрее
а какой процессор до этого был? ;)

Всего записей: 24106 | Зарегистр. 06-12-2002 | Отправлено: 19:51 26-10-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr

Цитата:
если речь идёт о более чем одном компьютере, то OpenMP отпадает сразу.
А как же связка OpenMP/MPI и ClusterOpenMP?

Ну я почему и написал OpenMP (чистый), если вы получаете 4х кратный прирост на 4х ядрах (по-сравнению с одним), то вполне возможно что ClusterOpenMP вас весьма порадует. Связка OpenMP/MPI это в большинстве случаев скорее 'legacy' чем задумка. Т.е. работало когда-то на OpenMP, все стали переходить на кластеры ну и дописали, получаем комбинацию. Обычно MPI вполне делает тоже самое что и OpenMP с минимальной разницей в производительности, это так практика показывает. Т.е. понятно что теоретически наблюдаются некоторые лишние затраты (overhead) но реально они мизерны.
 
Добавлено:
Igorr
Кстати, если всё действительно так хорошо параллелится, да ещё если приложение не сильно требовательное к памяти, я бы посоветовал глянуть в сторону CUDA, там с минимальными вложениями вы получаете сотни stream процессоров. Правда писать под неё чуть сложнее.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 19:59 26-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Цитата:
а какой процессор до этого был?
До этого был AMD Athlon64+ 4000. Оказалось, что этот проц считает примерно так же по времени как и одно ядро QuadCore Intel Core2 Quad Q9300 2500MHz.
 
FuzzyLogic
Хочется определить одно направление для гребли. Что будет возможно быстрее работать (и на сколько) на трех ПК с Windows в IVF: OpenMP/MPI или ClusterOpenMP?

Цитата:
если всё действительно так хорошо параллелится, да ещё если приложение не сильно требовательное к памяти, я бы посоветовал глянуть в сторону CUDA, там с минимальными вложениями вы получаете сотни stream процессоров. Правда писать под неё чуть сложнее.
1) не сильно требовательное к памяти - это сколько?
2) сотни потоков означает убыстрение в сотни раз?

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 20:29 26-10-2011 | Исправлено: Igorr, 20:57 26-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На одном форуме прочел высказывание , что coarrays могут служить альтернативой Cluster OpenMP. Кто-нибудь использует эти массивы "в деле"? Какие впечатления?

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 22:36 26-10-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr

Цитата:
Хочется определить одно направление для гребли. Что будет возможно быстрее работать (и на сколько) на трех ПК с Windows в IVF: OpenMP/MPI или ClusterOpenMP?

Ну вы хотя бы вкратце поделитесь задачей, может кто и подскажет
 

Цитата:
1) не сильно требовательное к памяти - это сколько?

Это желательно килобайты на поток (процессор)
 

Цитата:
2) сотни потоков означает убыстрение в сотни раз?

Если потоки достаточно изолированы, то да
 
Вкратце о моментах в CUDA:
1. Значительное время занимает загрузка данных в память
2. Объем памяти на типичной недорогой видеокарте составляет 1-2 гигабайта, кол-во stream процессоров несколько сотен (в зависимости от модели), так вы можете приблизительно прикинуть (реально памяти ещё меньше, по крайней мере быстрой) порядок того что можно делать
3. Обмениваться данными между процессами - недешёво, т.е. кол-во этих обменов/объем должны быть минимальны (что в общем-то справедливо и для MPI)
 
Т.е. если на пальцах, то сложение двух массивов по гигабайту каждый не даст вам ничего кроме тормозов (пока закинули массивы, потом оооочень быстро сложили, потом пока их забрали....) - быстрее делать на процессоре. А вот скажем если ваша задача разбивается на N (N несколько сотен) относительно небольших массивов (ну пусть по нескольку десятков килобайт каждый), и потом над каждым нужно проводить сложные мат. операции которые на процессоре занимают значительное время, и обмениваются эти под-задачи меж. собой редко (ну например итерация чего-то на процессоре занимает 10 секунд, после чего эти подзадачи друг другу посылают небольшой блок данных и снова "зависают" на долгое время считать, то CUDA даст вам просто обалденные результаты.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 11:18 27-10-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я не такой уж и злостный параллельщик как говорит akaGM,  осилил пока только OpenMP и теперь ищу время чтобы подсесть на MPI, а заодно и на CUDA/OpenCL
Хотя у меня проще - есть логин к машинкам по 24-64 ядра в одном, поэтому там мои программки с OpenMP "почти взрываются"  
 
Igorr

Цитата:
На одном форуме прочел высказывание , что coarrays могут служить альтернативой Cluster OpenMP. Кто-нибудь использует эти массивы "в деле"? Какие впечатления?

Судя по всему интенсивно пока никто, так как это долго не было стандартом и сейчас coarrays работают в g95 (но с ограничениями в _бесплатной_ версии на число потоков) и в интеловском компиляторе. gfortran-щики  пока что отстают конкретно (т.е. "все работает" но не распаралеливается).
A вообщем это тот же MPI "только в профиль" - код стает намного тоньше, проще и понятнее.
 
Хотелось бы все таки процитировать одного интеловца (сентябрь 2011)

Цитата:
 
But I do need to set your expectations:  our Coarray implementation to date has focused on core functionality.  We have done ZERO work on performance.  If you are expecting this to perform anywhere near an MPI program, you are in for a disappointment.
 
We will begin working on performance in the coming years.  It will take a while to get performance where it should be with Coarrays. All new technology is like this, remember back to the first implementations of array syntax in Fortran 90 - initially performance was not good and some said to "keep writing F77 loops".  Of course that the technology matured and now is comparable (or better) than hand-written loops.  Same with Coarrays, it could take several years to get performance where we'd like it.  
 
Do not expect good performance at this early stage of development.

 

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 12:30 27-10-2011 | Исправлено: terminat0r, 12:39 27-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
terminat0r
Спасибо за информацию. Вижу, что надо пробовать разные технологии - и смотреть результат.

Цитата:
Ну вы хотя бы вкратце поделитесь задачей, может кто и подскажет  
Задачи могут быть разные; массивы используются небольшие - ~8МБ. В последних задачах было по 2 таких массива, с которыми работала фортрановская dll: M1(x1,y1) и M2(x2,y2): M2(x2,y2)=F{M1(x1,y1)}. Эти задачи хорошо распараллелились по M2 в разных местах кода.
Цитата:
желательно килобайты на поток (процессор)
Получается, что CUDA не очень подходит для таких дел из-за 8 мегабайтного общего массива M1?  
 

Цитата:
Хотелось бы все таки процитировать одного интеловца (сентябрь 2011)
Именно на том же форуме я и прочитал о заинтересовавшем меня высказывании тоже интеловца и тоже в сентябре по поводу coarrays. Ситуация получается не очень ясная с этими массивами. Короче, надо с чего-то начать. Посмотрел стандарт фортрана 2008 - вроде ничего сложного в этих массивах не встретилось и можно довольно быстро модифицировать код, но пока не понял как организовать доступ на соседние компы и как в этом случае будет работать OpenMP. Кто-нибудь знает?

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 17:19 27-10-2011 | Исправлено: Igorr, 17:31 27-10-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr

Цитата:
Задачи могут быть разные

Ну вот это и смущает, разным задачам разные решение. Определение задачи "есть два массива" это несколько не то что я имел ввиду. Посмотрите сюда там есть примеры и приблизительные оценки прироста.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 17:39 27-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
У меня ATI Radeon HD 5670 (1024 MB) - похоже характеристики производительности CUDA для NVIDIA и ATI будут разными.
 
Добавлено:
Igorr
Цитата:
пока не понял как организовать доступ на соседние компы и как в этом случае будет работать OpenMP. Кто-нибудь знает?
На второй вопрос ответ уже есть: Compiling the Sample Program:
Цитата:
The -coarray option cannot be used in conjunction with -openmp options. One cannot mix Coarray Fortran language extensions with OpenMP extensions.

 
Добавлено:
Ха! Кому верить про совместимость CoArray Fortran (CAF) и OpenMP?
CAF works well with OpenMP (Slide 19):
Цитата:
 
!$omp parallel do …
do j=1,m
do i=1,n
target(i,j)[target_proc] = source(i,j)
enddo;enddo
 
All OMP threads are local to an image
(i.e. Multi-level parallelism)
Uses all OMP threads to “put” data into
the target location on the target
processor.
Похоже только самому пробовать и сравнить производительность.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 18:22 27-10-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr

Цитата:
У меня ATI Radeon HD 5670 (1024 MB) - похоже характеристики производительности CUDA для NVIDIA и ATI будут разными.  

CUDA это эксклюзивно Nvidia технология, у AMD это OpenCL, но у них как-то разработка SDK и инструментария идёт еле-еле.
 

Цитата:
Ха! Кому верить про совместимость CoArray Fortran (CAF) и OpenMP?
CAF works well with OpenMP (Slide 19):

И тем и другим, по вашей ссылки говорят от Cray, просто у Интелов реализация не совместима (пока?)

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 20:09 27-10-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru