ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
219012 Топик полностью
de3 (31.10.2010 22:48, просмотров: 100) ответил Evgeny_CD на Когда-то давно в институте меня что-то заставляли писать на Фортране. Сейчас я это напрочь забыл. Если честно - не могу понять, в чем там такая фишка, почему он так жутко эффективен против С в параллельном компьютинге (якобы)?
Первая фишка - раскрытие многомерных массивов без поитер-поинтер, а полностью имплисит. Вторая фишка - традиция, третья - всякие препроцессорные фичи, позволяющие объяснить компилеру, что именно надо использовать для SSE или еще какой оптимизации. С первой фишкой боролись, например, появлением стандарта С99 (кстати мелкомягкие так и его не поддерживают!), в котором разрешена такая конструкция:
void func(int n, double a[n][n])
{...}

int main()
{ ...
  void *p=malloc(sizeof(double)*n*n);
  func(n, p);
  ...
}
на фортране именно так принято работать с памятью и от этого многие матричные операции сильно упрощаются и ускоряются. Банальный пример, напишите пермутацию 7-ми мерного массива, написанную обычными поинтерами, и вот такой выше описанной конструкцией и сравните скорость работы. Меня именно таким тестом в 1992 году с С++ переучили на Фортран. PS: новые софты у нас с 2005 года больше на Фортране не пишутся, стараемся С99 стандарт использовать, благо старые фортранные библиотеки можно запросто подлинковать