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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

akaGM

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

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

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


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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
plazmon
Проблема в том что hyperthreading значительно искажает правдивость загрузки процессора. Потому как по сути hp это попытка сесть двумя попами на один стул. И хотя в некоторых случаях это возможно... Но ось при подсчёте загрузки с hp, просто считает каждый стул как 2 посадочных места, и посадив на каждый стул по одной попе мы получаем 50% загрузку, независимо от размера сидящих на стульях объектов и возможности разместить туда ещё что-либо.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 11:12 16-10-2013
Igorr

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

Цитата:
Попробуйте запустить один и тот же расчёт с 4мя и 8ю потоками. Сравнив время на тот и другой получите прибавку. Что-то подсказывает что 8ми поточный не закончит считаться в 2 раза быстрее, а если закончит, то я бы на вашем месте занялся оптимизацией кода

Так так и делал! но при включенном HT, и результат тот, который я уже написал. Понятно, что всегда можно что-то соптимизировать. Я использую распараллеливание DO с помощью OpenMP. Поскольку циклов в циклах некоторое количество, то был найден цикл, распараллеливание которого дало наименьшее время расчета. Весь расчет использует DOUBLE PRECISION переменные.
Немного почему я использую HT. Прога считает ~30-40 часов. Комп в личном пользовании у меня один. Во время расчета: система (WS2012) иногда что-то про себя шелестит (хотя приоритет - на приложениях), я просматриваю pdf, doc, txt файлы, иногда пользую rar, почта периодически общается с главным почтовым сервером, я иногда ищу информацию в интернете и т.д., т.е. редко ли - частенько ли, но один (как минимум) поток расчета зависает - это тормозит расчет на ~1/8 времени нерасчета. Если же буду использовать 4 потока, то это затормозит расчет на ~1/4. К тому же, время всего расчета определится самым долгоиграющим потоком. Примерно так.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 17:30 16-10-2013
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В моих рассуждениях относительно "почему" 8 потоков есть ошибки?
Какая конфигурация (теоретически) должна быстрее считать в моей ситуации: 4 потока без HT или 8 потоков с HT?

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 01:50 17-10-2013
FuzzyLogic



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

Цитата:
В моих рассуждениях относительно "почему" 8 потоков есть ошибки?  

Распределение ресурсов происходит несколько сложнее чем вы его себе представляете (это про "зависание" потока).
 

Цитата:
Какая конфигурация (теоретически) должна быстрее считать в моей ситуации: 4 потока без HT или 8 потоков с HT?

Это в основном зависит от вашего приложения (которое считает), пару постов назад я давал ссылку на статейку, там приблизительные оценки того что можно выиграть или потерять от использования HT. Правда прироста в 100% там нигде даже близко нет.

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

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

FuzzyLogic
Цитата:
Распределение ресурсов происходит несколько сложнее чем вы его себе представляете (это про "зависание" потока).
О распределении ресурсов я ничего не писал. Обратите внимание: "один (как минимум) поток расчета зависает".
Не доверять информации Task Manager (TM) у меня нет оснований, т.к. его показания совпадают с моими представлениями, а именно, показываемая загрузка процессора уменьшается скачками по мере завершения очередного расчетого потока. Так вот он, TM, показывает, что при начале каких-либо действий на компе с моей стороны (о которых я упоминал раньше), загрузка процессора падает с ~98% до ~85%+- и держится примерно на этом уровне. Если бы "подвешенный" расчетный поток распределялся между всеми 8 квазиядрами сразу, то загрузка процессора должна бы держаться на уровне 98% - а такого нет! А получаем ~13% "времени нерасчета" (не могу сказать сколь долго). Предполагаю (нет сейчас возможности проверить), что при 4-ех потоках без HT я бы получил процентное время нерасчета в ~2 раза (или около того) большее.
Да, пожалуй здесь не место для подобных обсуждений. Но коль вопрос был затронут, то как оно ответно мыслилось - так оно мной и высказалось.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 19:53 17-10-2013
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
Т.е. вы делите задачу на 8 кусков, а потом они независимо считаются в течение всего времени? Одни потоки заканчивают раньше, другие позже? Причём один может закончить значительно позже другого?

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
Нет, это в процессе отладки задачи на распараллеливание и наблюдения этого процесса я назначал разные условия. Решающий вариант: DO (1064 равноценных/равнозначных итераций) распараллеливается (OpenMP, без назначения "кусков") на 8 потоков.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 20:45 17-10-2013 | Исправлено: Igorr, 20:48 17-10-2013
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
Понятно, хотя и ничего не понятно В общем сложно оценить то что не видишь, но поясню почему не должно происходить 1/8 и 1/4. Если вы посмотрите в тот же TaskManager, там будет висеть порядка сотни процессов, которые при ваших различных манипуляциях (rar, поиски в интернет, итд) должны приблизительно поровну нагружать все ядра, т.е. ваши потоки (хоть 8, хоть 4), должны каждый "зависать" приблизительно поровну. Почему этого не происходит, это отдельный вопрос, возможно процессы с фиксированной аффинностью или просто проблемы с балансировкой нагрузки.
 
Добавлено:
Иллюстрация того почему Task Manager показывает ерунду:
http://peaksblog.bioinfor.com/2013/05/100-vs-50-cpu-usage-twice-as-fast-not.html
На графике, в режиме HT on, с 4мя потоками Task Manager показывает 50% утилизации, с 8мью потоками - 100% утилизации. Реальный прирост производительности при 8ми потоках (относительно 4х) - порядка 10%.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 21:01 17-10-2013 | Исправлено: FuzzyLogic, 21:13 17-10-2013
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
Относительно TM в статье ничего не могу сказать - надо бы проверить самому. Но там есть два интересных момента: 1) SSD: если не отключить его программу обслуги, то TM на компе показывает ~75-78%, и задача реально считается медленнее; 2) выигрыш ~10% на 8-и потоках относительно 4-ех - это возможно те вторые ~13% о которых я упоминал
Цитата:
Предполагаю (нет сейчас возможности проверить), что при 4-ех потоках без HT я бы получил процентное время нерасчета в ~2 раза (или около того) большее.
Если это действительно так, тогда вроде мои предыдущие высказывания являются околоправильными. И расчет на 8-и потоках происходит быстрее (в любом случае не медленнее), чем на 4-ех. А если расчет длится часами-сутками, и в это время надо еще что-то поделать на компе, тогда выбор однозначен - 8 потоков с HT (это для Windows).

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



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

Цитата:
Но там есть два интересных момента: 1) SSD: если не отключить его программу обслуги, то TM на компе показывает ~75-78%, и задача реально считается медленнее

Это вообще какой-то кошмар тогда, может у вас ещё что-то резидентное висит с такими же эффектами? Может какие RAIDы софтварные? О каких бенчмарках и выводах тогда вообще можно говорить если у вас до четверти процессорного времени жрёт непонятно кто и куда.
 

Цитата:
И расчет на 8-и потоках происходит быстрее (в любом случае не медленнее)

А для этого можно посмотреть статью ссылку на которую я давал раньше, у каждого приложения свои ньюансы, и там как раз обсуждаются различные случаи и слабые места (зависимость от IO, память, cache misses, итд итп) когда и какой прирост или недорост можно ожидать. И "не медленнее" это тоже не факт.

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
Да нет никакого кошмара, никаких RAID-ов и прочих "непонятно кто и куда" -- "Все под контролем" (С)

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 22:49 17-10-2013
akaGM

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

Цитата:
Прога считает ~30-40 часов.

всё что можно насчитать заранее, насчитано?
 
Добавлено:
 
есть ещё пара копеечных советов, но, думаю, ты, наверное, их уже проходил...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 12:47 21-10-2013
Igorr

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

Цитата:
всё что можно насчитать заранее, насчитано?

Исесина
ОЗУ используется по максимуму, ничего два раза не считается, и нет повторяющихся от варианта к варианту промежуточных результатов для их использования в следующем 30-40 часовом расчете (если речь об этом).

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

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
 
да, об этом...
знаешь как это мне помогло?
оптимизировал я таким образом свою программу несколько лет назад...
а потом подумал: нафига всё это из файлов вычитывать, и засунул всё хозяйство в DATA
полный кирдык -- прога забастовала, и ни в какую...
оказалось, что для DATA был предел в 4 мега и никак это не лечилось...
написал интелам, и вскоре получил... с благодарностью 8-ю версию (была 7-ая ворованная) :)
 
а что у тебя считается, если не секрет? что-то сурово-итерационное?

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 19:14 21-10-2013
Igorr

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

Цитата:
а что у тебя считается, если не секрет? что-то сурово-итерационное?

Нет, не сурово, но итерационное: расчет изображения на плоскости  --  5-и кратные интегралы с использованием IMSL (30-40 часов - это только сечение по одной координате в плоскости изображения).

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 19:34 21-10-2013
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
Томография или секрет?

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 20:04 21-10-2013
Igorr

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

Цитата:
Томография или секрет?

Нет, космический гипертелескоп.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 20:08 21-10-2013
akaGM

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

Цитата:
IMSL
понятно...
небось туева хуча внутренних вызовов интерфейсных (внешних) процедур, у которых только список параметров на пяти строках...
тут поможет только полное допиливание выкушенного нужного тебе куска этой ИМСЛ под себя и переход на глобальные переменные, проходили...
 

Цитата:
5-и кратные интегралы

оптимизация функции 100-переменных тоже ничего так...
 
а в рыжике-грандштейне посмотреть или на бумажке взять :)
или там не разделяются?

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 20:49 21-10-2013 | Исправлено: akaGM, 20:56 21-10-2013
Igorr

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

Цитата:
небось туева хуча внутренних вызовов интерфейсных (внешних) процедур, у которых только список параметров на пяти строках...  

Нет, тут все просто: 10-15 параметров (D_QAND, DQ2AGS).

Цитата:
а в рыжике-грандштейне посмотреть или на бумажке взять  или там не разделяются?

Все элементарное, типа функций Бесселя, неполных функций Ангера и Вебера, и кое-что остальное по мелочи я вычерпал. Оставались функции Ломмеля двух переменных и разложение в ряды. Я попробовал - делаемо, но работы увиделось на не один месяц; не пошел по этому пути.

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



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

Цитата:
Нет, космический гипертелескоп.
 
Тоже солидно    

Цитата:
5-и кратные интегралы с использованием IMSL

а грубой силой напрямую пробовали?    http://www.feynarts.de/cuba/

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 22:32 21-10-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум 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