Наверное, почти каждый из нас сможет поведать о себе историю в духе героя рассказа Марка Твена “Как я издавал сельскохозяйственную газету”, но только на ИТ-лад. В моей молодости был период, когда я занимался автоматизацией научных исследований. Он по-своему был таким же ярким, как и у героя этого знаменитого рассказа, поскольку заказчиками являлись медики и биологи. Постоянная головная боль при работе с ними — понять, что же в итоге они хотят получить от очередного эксперимента и от обработки его результатов. Но однажды я нашёл хорошее решение: затратив некоторое время, обучил этих ребят самих программировать на Бейсике. Заметим, что до этого момента время на лабораторном компьютере было расписано по часам, распределяло его, как и любой дефицит, высокое начальство. И вдруг однажды вижу, что компьютер уже несколько дней свободен и нет привычной очереди к нему. Оказывается, что все мои исследователи написали свои программы обработки, всё посчитали и ушли думать. Из этой истории я сделал два вывода: когда не надо никому ничего объяснять, процесс ускоряется многократно; критичное звено в ИТ не компьютер, а человек.
К чему это я? В последнее время нашу прессу захлестнула волна сообщений о том, что то один, то другой вуз установил у себя суперкомпьютер. Чашу моего терпения переполнило заявление руководителя одного из таких вузов о готовности загрузить свой суперкомпьютер в среднем на 70%! Как говорится, этого не может быть, потому что этого не может быть никогда. Хорошо, если загрузят на пресловутые 5%!
Начнём с такого банального факта, что далеко не все задачи распараллеливаются. А последовательная задача на суперкомпьютере решается на одном процессоре, который не намного быстрее процессора хорошего сервера. Допустим, что задача хорошо распараллеливается и для её решения можно загрузить все несколько сотен ЦП суперкомпьютера или хотя бы большую часть их. Идеально, если фрагменты задачи не взаимодействуют друг с другом. Однако так практически не бывает — эти фрагменты должны синхронизироваться, передавать данные, обмениваться сообщениями и т. д. При этом возникает другая проблема — обмен сообщениями требует времени, которое определяется быстродействием межпроцессорной шины. Но даже если предположить, что передача сообщений происходит мгновенно, задачи в каждом ЦП будут “висеть” в ожидании синхронизации. И чем большее число ЦП задействовано, тем больше будет это облако ждущих задач и тем медленнее будет решаться общая задача.
Наконец, если бы было можно, как это удалось мне когда-то, научить всех пользователей тонкостям параллельного программирования, то и вопросов было бы на порядок меньше. В реальности же каждую пользовательскую задачу нужно тем или иным способом распараллелить, что далеко не просто. (Помнится в начале 1980-х годов в ИПУ на одном из первых в стране суперкомпьютеров программист три месяца писал функцию, которая в параллельном режиме вычисляла синус.) Где вуз наберёт профессионалов, способных решать такие задачи, -- для меня загадка, поскольку нужно их минимум десяток на терафлопс. Допустим, вы купили супер-пупер-компьютер на 20 Тфлопс. Значит, нужно иметь минимум 200 высококвалифицированных программистов. В Москве это означает 250—300 тыс. долл. в месяц только на зарплату. А ведь ещё нужно платить и за электроэнергию – при круглосуточной работе суперкомпьютер съест за сутки как минимум 1000 кВт*час Располагая такими средствами, вуз вполне мог бы решить многие жизненно важные проблемы профессорско-преподавательского состава.
Пытался ли кто-то искать более эффективные в плане затрат решения, такие как grid-технологии, аренда времени в уже действующих суперкомпьютерных центрах и т. п.? Похоже, что суперкомпьютеры стали в вузовском сообществе очередной модой или очередной цветовой дифференциацией штанов при освоении государственных денег (помните замечательную фразу одного из героев фильма “Кин-дза-дза”: “Общество, в котором нет цветовой дифференциации штанов, обречено”?). Не уверен, что без суперкомпьютеров российские вузы обречены, а вот без преподавателей — однозначно!
Всё сказанное не следует воспринимать так, что я против суперкомпьютеров. Просто у меня не вызывает восторга стрельба из пушек по воробьям, внедрение чисто американского подхода к решению задач методом “грубой силы”, растранжиривание средств и ресурсов, которые, употреблённые с умом, могли бы принести ИТ-индустрии, стране, а в конечном счёте и человечеству, гораздо больше пользы.