Рубрика «fortran»

Когда я узнал, что в Музее компьютерной истории есть работающий компьютер IBM 1401 [1], то заинтересовался, сможет ли он сгенерировать фрактал Мандельброта. Я написал программу фрактала на языке ассемблера и компьютер в течение 12 минут пыхтел, создавая изображение Мандельброта на своём строчном принтере. В процессе этой работы я узнал несколько любопытных фактов о IBM 1401, которые изложу в этой статье.

12-минутный Мандельброт: фракталы на 50-летнем мейнфрейме IBM 1401 - 1

Мейнфрейм IBM 1401 (слева) из Музея компьютерной истории печатает фрактал Мандельброта на принтере 1403 (справа). Примечание: это строчный принтер, а не матричный.

Компьютер IBM 1401 появился в 1959 году, он стал самым продаваемым компьютером середины 1960-х — всего использовалось более 10 тысяч систем. 1401 сдавался в аренду за 2500 долларов в месяц [2] (примерно 20 000 долларов по нынешним ценам) — низкой цене, позволившей использовать компьютеры большему количеству компаний. Даже бизнес средних размеров мог использовать 1401 для подсчёта зарплат, ведения бухгалтерии, инвентаризации, обработки заказов, выставления счетов и множества других задач. Благодаря низкой стоимости и большой популярности 1401 прозвали «Моделью Т» компьютерной отрасли [3]. Даже для своего времени IBM 1401 имел довольно скромную производительность, особенно по сравнению с мощными бизнес-компьютерами наподобие IBM 7080 (стоимость аренды: 48 000 долларов в месяц) [2]. Однако IBM 1401 получил огромную популярность благодаря своей доступности, надёжности, простоте использования, качественному принтеру и стильному внешнему виду [4].
Читать полностью »

Начнем с этой всем известной фразы. Итак, были отечественные крутые теплые ламповые (часто в буквальном смысле) наработки, уникальные, созданные талантами. А потом руководство завело бульдозер, который срыл все это подчистую, и засадил все безликими IBM. Так меня учили. Но по мере того, как мне попадались старые книги по программированию (а отчасти я сам свидетель той эпохи — о СССР я знаю не по рассказам), эта картина стала рушиться. У меня сейчас под рукой сейчас три книги, и мы используем их. Итак:

Дейкстра: Величайшей победой Запада в холодной войне над СССР был переход на IBM — myth busted - 1
Читать полностью »

I decided to make an interview with one of my American friends — Rob Vugteveen. He was working as a FORTRAN programmer back in 1980s, so it's quite a unique experience.

Interview with Rob Vugteveen — an old-school FORTRAN programmer - 1
Rob Vugteveen, Carson City, Nevada, USA

K: Hi Rob. I've heard you were working as a Fortran programmer many years ago. Is that right? How the industry was looking back then?

R: Good morning, Kirill.

In the 1980s I made my living as a FORTRAN programmer in the mining industry, primarily in the processing of exploration data and presenting it graphically. We were using VAX minicomputers from Digital Equipment Corporation. This was a time when desktop PCs were growing in popularity, and procedural languages like FORTRAN were being challenged by object-oriented languages. Also, graphics display systems were shifting away from character-cell terminals to X-window-based displays.

FORTRAN (“FORmula TRANslation”) was built for computationally intensive programs, and it did not have its own graphic libraries to display information. There were companies that sold large FORTRAN subroutine libraries to provide that capability. These were not yet designed for the growing popularity of X-window technology.

When we were forced to move from expensive VAX computers to cheaper PCs, we had to write hybrid programs using FORTRAN for computations and C++ for display. It was a bit messy at first. I left that job for something completely different (building a mining museum) and haven’t really done any programming since.

FORTRAN is still used today in scientific research for computationally intensive work, but I’m sure it’s been adapted to work with graphical display systems through external subroutines written in object-oriented code.
Читать полностью »

Автор материала рассуждает о проблемах современных языков программирования и о том, какими путями можно исправить недостатки.

Если изобрести язык программирования 21 века - 1

Только за последние 18 лет люди придумали множество языков, среди которых, вероятно, самыми популярными стали Swift, Kotlin и Go. При этом отличительная черта языка программирования 21 века — это отсутствие каких-либо отличительных черт. Самое приятное в работе с такими языками — за изучением одного из них можно провести выходные и под конец заявить, что вам удалось освоить популярную новинку, по факту же не узнав ничего нового. В них действительно нет ничего нового. Все современные языки созданы на основе какой-либо правильной и проверенной формулы, имя которой, вероятнее всего, Objective-C, Java или C.

«Отсутствие новизны» можно считать ценной чертой, но подобная ситуация вызывает один вопрос. Действительно ли перед нами языки нового, 21 века, или все это — просто отражение плохих привычек программирования 20 века?

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

Долой синтаксис!

Синтаксис современных языков отражает попытку втиснуть свободу мела и доски в оковы ASCII. Некоторые элементы записи, такие как арифметические знаки или скобки, воспринимаются более-менее естественно. Но ряд других обозначений оправдан разве что экономией усилий при нажатии кнопок телетайпа.Читать полностью »

Это история о том, как мы замедляли ускоряли расчеты на самом мощном суперкомпьютере в мире.

Behind the scene of TOP-1 supercomputer - 1

Читать полностью »

Фильтр анизотропной диффузии Перона и Малика — это сглаживающий цифровые изображения фильтр, ключевая особенность которого состоит в том, что при сглаживании он сохраняет и «усиливает» границы областей на изображении.

В статье я кратко рассмотрю зачем нужен этот фильтр, теорию по нему и как его реализовать алгоритмически, приведу код на языке Fortran и примеры сглаженных изображений.

Сглаживание изображений фильтром анизотропной диффузии Перона и Малика - 1
Крайнее левое изображение — оригинальное, справа от оригинального — фильтрованные с различными параметрами.
Читать полностью »

Новые «плюшки» компилятора – безопасней, быстрее, совершеннее - 1
Как говорилось во всеми нами любимом фильме: «Налетай, торопись, покупай живопись». Последняя, конечно, тут ни при чем, а вот «налетать» на новую Бета версию компилятора уже пора. Сегодня я расскажу о том, что нового появилось в пакете Intel Parallel Studio XE 2018 Beta, и в частности, в компиляторной её составляющей. А там действительно много что добавилось, ведь стандарты не стоят на месте — C++14, C++17, Fortran 2008, 2015, OpenMP 4.5 и 5.0, а компилятор должен не только их поддерживать, но и генерировать совершенный, производительный и безопасный код. Кроме этого, новые наборы инструкций AVX512, позволяющие «снимать сливки» с последних процессоров Skylake и KNL, всё больше входят в арсенал современных компиляторов. Но а самое вкусное — новые ключи, которые позволяют получить ещё больше производительности «не напрягаясь». Итак, поехали!
Читать полностью »

Не знаю, как будет выглядеть язык программирования в 2000-м году, но я знаю, что называться он будет FORTRAN.
— Чарльз Энтони Ричард Хоар, ок. 1982

В индустрии Fortran сегодня используется редко – в одном из списков популярных языков он оказался на 28-м месте. Но Fortran всё ещё главный язык для крупномасштабных симуляций физических систем – то есть для таких вещей, как астрофизическое моделирование звёзд и галактик (напр. Flash), крупномасштабной молекулярной динамики, коды подсчёта электронных структур (SIESTA), климатические модели, и т.п. В области высокопроизводительных вычислений, подмножеством которых являются крупномасштабные числовые симуляции, сегодня используются лишь два языка – C/C++ и «современный Fortran» (Fortran 90/95/03/08). Популярные библиотеки Open MPI для распараллеливания кода были разработаны для двух этих языков. В общем, если вам нужен быстрый код, работающий на нескольких процессорах, у вас есть только два варианта. В современном Fortran есть такая особенность, как "coarray", позволяющая прямо в языке работать с параллельным программированием. Coarray появились в расширении Fortran 95, а затем были включены в Fortran 2008.

Активное использование Fortran физиками часто приводит в замешательство специалистов по информатике и других не связанных с этой областью людей, которым кажется, что Fortran – исторический анахронизм.
Читать полностью »

Неинициализированные переменные: ищем ошибки - 1

Большое количество научных исследований используют код, написанный на языке Фортран. И, к великому сожалению, «научные» приложения тоже не застрахованы от банальных ошибок, таких как неинициализированные переменные. Стоит ли говорить, к чему могут приводить подобные вычисления? Иногда эффект от таких ошибок может довести до «серьёзных прорывов» в науке, или стать причиной действительно больших проблем – кто знает где полученные результаты могут быть использованы (но, мы догадываемся где)? Хотелось бы привести ряд простых и эффективных методов, которые позволят проверить существующий код на Фортране с помощью компилятора Intel и избежать подобных неприятностей.
Читать полностью »

image

17 октября 1977 года на ежегодной конференции АСМ премия Алана Тьюринга была вручена человеку, который создал первый высокоуровневый язык программирования для научных и технических целей.

Премия была присуждена Джону Бэкусу «… за глубокий и важный вклад в создание практических систем программирования высокого уровня. В особенности – за работы по Fortran и частые публикации формальных процедур для спецификации языков программирования».

В 50-х годах ХХ века труд программиста по написанию, вводу и отладке программ был далеко не легким: сначала программы писались на машинном языке.

Для облегчения участи программистов были придуманы подпрограммы, а затем первые ассемблеры. Но эффективность программирования от этого существенно не повысилась. Если бы кто-то мог написать транслятор, который позволил бы вводить команды из слов и символов, а затем автоматически конвертировать их в машинный код...Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js