Свежий номер №5 (430) / Под законом Амдала Дата публикации: 11.02.2002 Александр Антонов, asa@parallel.ru
Задачи каких типов лучше решать на кластерах? - Упрощенно говоря - такие задачи, которые могут быть разбиты на множество простых подзадач, решаемых параллельно. Вычисления, которые в компьютерном мире считались чем-то элитарным именно из-за своего объема, сейчас становятся все более доступны благодаря появлению кластеров. По сути, мы присутствуем при тихой кластерной революции. Однако нужно учитывать, что кластер обладает собственной архитектурой. Это гетерогенная среда, в которой информация передается где-то быстрее, а где-то медленнее. В отличие от компьютера с общей памятью в кластере могут сильно сказываться латентность и скорость передачи данных. А какие задачи, наоборот, нельзя перенести на кластер и они останутся за традиционными суперкомпьютерами? - За ними в первую очередь останется то, что требует огромных вычислений с тесным взаимодействием между параллельными процессами программы. Кластеры могут быть большими, но большие кластеры имеют свои минусы. В системах, объединяющих тысячи компьютеров, есть проблемы с коммуникацией процессов. И очень трудно написать программу, которая бы учитывала параллелизм. Существуют ли средства эффективного распараллеливания кода с минимальным участием человека? Или для параллельных машин нужно обязательно переписывать программы вручную? - Я бы не стал противопоставлять автоматические средства, «ручное» программирование и специальные языки разработки параллельных программ. Как правило, приходится идти на компромисс и использовать несколько средств. Системы, занимающиеся автоматическим поиском параллелизма, должны существовать в любом случае - хотя бы потому, что накоплен огромный багаж, и переделать его вручную под сегодняшние популярные технологии программирования невозможно. Тем более что эти технологии рождаются и умирают довольно быстро. За последние пятнадцать лет сменилось несколько их поколений. Сегодня есть две популярные технологии, одна из которых ориентирована на компьютеры с общей памятью, другая - с распределенной, к которым относятся кластеры. Это соответственно OpenMP и MPI. Какое-то время, они, конечно, будут жить обособленно, однако уже заметна тенденция к их слиянию. А как же Parallel Virtual Machine (PVM)? - PVM потихоньку сдает позиции, и подавляющее большинство кластерных систем используют MPI. Но одним MPI дело не ограничивается. Существует множество прикладных пакетов со встроенной поддержкой параллелизма. Остается лишь определить во входных данных функциональность, которая вам нужна. Вернемся к автоматическим средствам анализа программ. Какие из имеющихся на рынке продуктов вы могли бы назвать? - Универсальных средств так до сих пор и нет, а те, что появились несколько лет назад, развиваются медленно. Миром завладели кластеры, а все, что связано с анализом и адаптацией кода для компьютеров с распределенной памятью, - чрезвычайно сложная задача. Помимо анализа потенциального параллелизма нужно согласованно распределять данные. Сегодня ни один компилятор не берется за то, чтобы из последовательного кода сделать параллельный для компьютера с распределенной памятью. Для компьютеров с общей памятью были хороши разработки фирмы KAI. Ее препроцессоры используются во многих коммерческих приложениях, например компанией Sun. Что бы вы посоветовали тому, кто собирается строить кластер? - Для начала крепко подумайте, что вы хотите получить - полезный инструмент для своей основной деятельности или модную сегодня игрушку. Если первое, то не стоит в очередной раз изобретать велосипед, лучше посоветоваться с профессионалами. Опыт накоплен очень большой, и не нужно всякий раз наступать на одни и те же грабли. А на какие грабли вы наступали? - На многие. Не существует «трех волшебных правил», соблюдая которые, вы избежите проблем. На каждом этапе создания программно-аппаратной среды приходится решать множество вопросов. И главный из них - зачем она нужна? К примеру, мы делали центр для Московского университета. Это огромное количество разных задач и непредсказуемая нагрузка - учебный класс на двадцать человек или какое-нибудь научное приложение могут легко загрузить весь кластер на сутки. А когда приходится совмещать разные типы задач, следует быть готовым ко всему. Если бы такой универсальности не требовалось, нашлось бы менее дорогое решение. Интервью брал Владимир Воеводин - заместитель директора Научно-исследовательского вычислительного центра МГУ.
|