Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] Сомнения в необходимости языка 
V
    Опции темы
Иванофф
Дата 19.1.2009, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



Цитата(Cr@$h @ 18.1.2009,  19:51)
Физику задачи я из кода не понял. А что допустимо менять там? В первом приближении хотя бы так:
Код

subroutine offsetMomentum(k, bodies)
    integer, intent(in) :: k
    type(body), dimension(:), intent(inout) :: bodies
    bodies(k)%vx = -Dot_Product(bodies(:)%vx, bodies(:)%mass)/SOLAR_MASS
    bodies(k)%vy = -Dot_Product(bodies(:)%vy, bodies(:)%mass)/SOLAR_MASS
    bodies(k)%vz = -Dot_Product(bodies(:)%vz, bodies(:)%mass)/SOLAR_MASS
end subroutine offsetMomentum



мда, один цикл заменили на 3, и после этого говорите о оптимизации по времени.
причем в первом варинте компилятор еще смог бы сам что-то подправить,
а в вашем будет тупо крутить 3 цикла.  причем с жуткими тормозами по памяти.

чем плоха книга Горелик - теоретическим походом. Читать надо все подряд и не только по фортрану.

PM MAIL   Вверх
Cr@$h
Дата 19.1.2009, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Законные замечания, но.. не верьте своим глазам, не стоит всё буквально понимать.
Цитата(Иванофф @  19.1.2009,  01:55 Найти цитируемый пост)
один цикл заменили на 3

Во-первых, выбор промежуточных переменных передан компилятору. Во-вторых, кто вам сказал, что эти три цикла будут выполнятся как три? В-третьих, это было первое промежуточное приближение. При такой записи лучше видно, что делать дальше. т.к. задачу приходилось поднимать снизу вверх с "низкоуровнего" С++. При записи же потом в одну строчку на полную катушку будет работать векторизация, а это ~x3.х при больших значениях.

Цитата(Иванофф @  19.1.2009,  01:55 Найти цитируемый пост)
чем плоха книга Горелик - теоретическим походом.

 smile А лично я её и не открываю. Она считает, что в Fortran есть указатели. Это не компетентно, формальный перевод, расходящаяся с практикой теоретическая обрисовка.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.