История изменений
Исправление AntonI, (текущая версия) :
Все зависит от:
-
того что хочется в этом цикле делать.
-
хочется ли его делать параллельным.
-
насколько тело цикла толстое (насколько критичны накладные расходы).
Варианты обственно такие:
-
делаем один целочисленный счетчик по всей области и на каждой итерации переводим его в j0…3. Плюсы - это просто и хорошо параллелится. Минусы - это дорого (лишние телодвижения), но при условии что нужны j0…3. Если не нужны то это самый быстрый варинат.
-
Делаем счетчик в виде n целых чисел, инкрементируем первое а дальше проверяем границы. Плюсы - это быстро (нет лишних телодвижений), минусы - это не параллелится и надо писать всякие обертки что бы это нормально смотрелось.
-
Если нужна параллельность - берем в.2, но не инкрементируем первую компоненту а добавляем число тредов, дальше примерно то же самое. В использовании это выглядит странновато, хотя привыкнуть можно.
Если нужны готовые решения их есть у меня (собственно мы этими многомерными циклами дцать лет пользуемся), могу кинуть в почту ссылку на гитхаб.
Исправление AntonI, :
Все зависит от:
-
того что хочется в этом цикле делать.
-
хочется ли его делать параллельным.
-
насколько тело цикла толстое (насколько критичны накладные расходы).
Варианты обственно такие:
-
делаем один целочисленный счетчик по всей области и на каждой итерации переводим его в j0…3. Плюсы - это просто и хорошо параллелится. Минусы - это дорого (лишние телодвижения).
-
Делаем счетчик в виде n целых чисел, инкрементируем первое а дальше проверяем границы. Плюсы - это быстро (нет лишних телодвижений), минусы - это не параллелится и надо писать всякие обертки что бы это нормально смотрелось.
-
Если нужна параллельность - берем в.2, но не инкрементируем первую компоненту а добавляем число тредов, дальше примерно то же самое. В использовании это выглядит странновато, хотя привыкнуть можно.
Если нужны готовые решения их есть у меня (собственно мы этими многомерными циклами дцать лет пользуемся), могу кинуть в почту ссылку на гитхаб.
Исходная версия AntonI, :
Все зависит от:
-
того что хочется в этом цикле делать.
-
хочется ли его делать параллельным.
-
насколько тело цикла толстое (насколько критичны накладные расходы).
Варианты обственно такие:
-
делаем один целочисленный счетки по всей области и на каждой итерации переводим его в j0…3. Плюсы - это просто и хорошо параллелится. Минусы - это дорого (лишние телодвижения).
-
Делаем счетчик в виде n целых чисел, инкрементируем первое а дальше проверяем границы. Плюсы - это быстро (нет лишних телодвижений), минусы - это не параллится и надо писать всякие обертки что бы это нормально смотрелось.
-
Если нужна параллельность - берем в.2, но не инкрементируем первую компоненту а добавляем число тредов, дальше примерно то же самое. В использовании это выглядит странновато, хотя привыкнуть можно.
Если нужны готовые решения их есть у меня (собственно мы этими многомерными циклами дцать лет пользуемся), могу кинуть в почту ссылку на гитхаб.