Такие области исследований, как прогнозирование ядерных взрывов, конструирование новых машин, проблемы нефте– и газодобычи, фармакология, сейсморазведка, прогнозирование погоды, синтез новых материалов остро нуждаются именно в суперкомпьютерах.
Однако существует также класс задач, где вычислительные узлы практически не взаимодействуют друг с другом, решая каждый свою часть задачи. К таким задачам, например, относится подбор ключей к зашифрованному тексту, поиск нужных данных в сверхбольшом информационном массиве и т. д.
В данном случае связь между узлами может быть медленной, с ее обеспечением вполне справятся практически любые локальные или глобальные сети.
Этот важный раздел параллельных вычислений и получил название метакомпьютинг, а объединенные нескоростной сетью ЭВМ, решающие общую задачу – метакомпьютером.
Таким образом, метакомпьютер можно считать частным случаем суперкомпьютера, когда скорость связи между блоками весьма невелика.
В первых метакомпыотерных проектах связь между узлами поддерживалась не в режиме реального времени, а по электронной почте. Так, в 1988 году ученые из компании «Дек» написали программу, которая позволяла распределить на множество машин решение математической задачи факторизации числа. Не останавливаясь на подробностях, заметим лишь, что эта задача легко делилась на части, распределяемые между разными компьютерами. Вскоре в проекте участвовало более 1000 человек со своими персональными компьютерами, которые довольно быстро решили задачу.
Окрыленные первым успехом энтузиасты метакомпьютинга стали искать новые области применения своих сил. Следующей задачей, которую они принялись решать, был поиск простых чисел, – таких, которые делятся только на 1 и сами на себя. На нынешний день длина самого большого из найденных простых чисел составляет примерно миллион знаков. И работа в принципе еще не завершена, поскольку доказано, что простых чисел может быть бесконечно много. Просто практической необходимости в таком поиске нет, вот он и был приостановлен.
Другой проект – нахождение чисел Мерсена. Они названы так по имени французского ученого Марена Мерсена, жившего в XVII веке. Эти числа получаются, когда 2 возводят в степень какого–нибудь простого числа, а потом отнимают от него 1. Если в результате получается опять–таки простое число, оно и есть число Мерсена.
Числа Мерсена вызывают интерес у математиков, так как позволяют найти новые, почитаемые еще с античности совершенные числа, т. е. такие, которые равны сумме собственных делителей, кроме себя самого.
Сложность задачи заключается в том, что числа Мерсена найти очень трудно. При всей простоте правил их нахождения приходится перебирать множество вариантов, пока наконец не найдешь хотя бы одно. Причем гарантий, что перебор какого–то массива обязательно приведет к успеху, нет, поскольку неизвестно, бесконечно ли количество чисел Мерсена.
Распределенный поиск таких чисел ведется уже с середины 90–х годов и конца–края ему пока не видно. Хотя в проекте участвуют тысячи математиков–энтузиастов, до сих пор им удалось обнаружить всего 38 таких чисел.
Причем за последние три года было найдено всего лишь два новых...
При всей, казалось бы, практической бесполезности решение громоздких задач из области теории чисел позволило усовершенствовать и отладить схему распределенных вычислений. Заодно это лишний раз доказало тезис Леонарда Эйлера о полезности изучения простых чисел.
«Из всех проблем, рассматриваемых в математике, нет таких, которые бы считались в настоящее время более бесплодными и лишенными приложения, чем проблемы, касающиеся природы чисел и их делителей, – писал ученый в XVIII веке. – В этом отношении нынешние математики отличаются от древних, придававших гораздо большее значение исследованиям такого рода. Кроме того, что отыскание истины само по себе казалось им похвальным и достойным человеческого познания, древние хорошо чувствовали, что при этом замечательным образом развивается изобретательность и перед человеческим разумом открываются новые возможности решать сложные задачи».
Основная схема параллельных метакомпьютерных вычислений ныне обычно выглядит так. Разнородные компьютеры связываются между собой по линиям связи. Для всех участников проекта пишется общая программа обеспечения. При этом учитывается, что связь между вычислительными узлами имеет весьма небольшую скорость, неизбежны длительные задержки. Кроме того, компьютеры участников проекта имеют разную скорость, объем памяти, а сами участники проекта имеют неодинаковую квалификацию. Приходится учитывать и тот факт, что какая–то часть участников проекта в какой–то момент может разочароваться в своей деятельности и вообще отключиться от сети.
Читать дальше