Главная » Статьи » Непознанное |
![]()
У большинства людей слово "компьютер" ассоциируется сначала с персоналкой, которую можно узреть сейчас не только лишь в любом кабинете, да и в почти всех квартирах. По правде, мы живем в эру, когда компьютер вошел практически в каждый дом. Но не следует забывать, что ПК - это только часть компьютерного мира, где есть еще более массивные и сложные вычислительные системы, труднодоступные рядовому юзеру. Многие, наверное, слышали о компьютере по имени Deep Blue, который в 1997 году обыграл самого Гарри Каспарова. Интуитивно понятно, что такая машина не могла быть обычный персоналкой. Другой пример - российский компьютер МВС-1000 производительностью 200 млрд операций за секунду, не так давно установленный в Междуведомственном суперкомпьютерном центре в Москве. Не считая того, в прессе временами возникают сообщения о незаконных поставках в Россию вычислительной техники, попадающей под эмбарго южноамериканского правительства.
Подобные компы для многих так и остаются потаенной за семью замками, окруженной нимбом ассоциаций с кое-чем очень огромным: большие размеры, сверхсложные задачки, большие компании и компании, неописуемые скорости работы и т.д. Одним словом, супер-ЭВМ, что-то дальнее и труднодоступное. Меж тем, если для вас хотя бы раз приходилось воспользоваться услугами суровых поисковых машин в Вебе (см. "Наука и жизнь" № 11, 1999 г.), вы, сами того не подозревая, имели дело с одним из приложений суперкомпьютерных технологий. Доктор физико-математических наук В. ВОЕВОДИН, заместитель директора Научно-исследовательского вычислительного центра МГУ им. М. В. Ломоносова. ЧТО ТАКОЕ СУПЕРКОМПЬЮТЕР Считается, что супер-ЭВМ - это компы с наибольшей производительностью. Но резвое развитие компьютерной промышленности делает это понятие очень и очень относительным: то, что 10 годов назад можно было именовать суперкомпьютером, сейчас под это определение уже не подпадает. Производительность первых супер-ЭВМ начала 70-х годов была сравнима с производительностью современных ПК на базе обычных микропроцессоров Pentium. По нынешним меркам ни те, ни другие к суперкомпьютерам, конечно, не относятся. В любом компьютере все главные характеристики взаимосвязаны. Тяжело для себя представить универсальный компьютер, имеющий высочайшее быстродействие и маленькую оперативку или гигантскую оперативку и маленький объем дисков. Отсюда обычной вывод: супер-ЭВМ - это компьютер, имеющий не только лишь наивысшую производительность, да и наибольший объем оперативной и дисковой памяти в совокупы со спец программным обеспечением, при помощи которого этим монстром можно отлично воспользоваться. Суперкомпьютерам не раз пробовали давать универсальные определения - время от времени они выходили суровыми, время от времени ироническими. К примеру, как-то предлагалось считать суперкомпьютером машину, вес которой превосходит одну тонну. Пару лет вспять был предложен и таковой вариант: суперкомпьютер - это устройство, сводящее делему вычислений к дилемме ввода/вывода. По правде, задачки, которые ранее рассчитывались очень длительно, на супер-ЭВМ производятся одномоментно, и практически всегда сейчас уходит на более неспешные процедуры ввода и вывода данных, производящиеся, обычно, с прежней скоростью. Так что все-таки такое современный суперкомпьютер? Самая мощная ЭВМ на сегодня - это система Intel ASCI RED, построенная по заказу Министерства энергетики США. Чтоб представить для себя способности этого суперкомпьютера, довольно сказать, что он соединяет воединыжды внутри себя 9632 (!) микропроцессора Pentium Pro, имеет более 600 Гбайт оперативки и общую производительность в 3200 млрд операций за секунду. Человеку потребовалось бы 100000 лет, чтоб даже с калькулятором выполнить все те операции, которые этот компьютер делает всего за 1 секунду! Сделать схожую вычислительную систему - все равно, что выстроить целый завод со своими системами остывания, бесперебойного питания и т.д. Понятно, что хоть какой суперкомпьютер, даже в более умеренной конфигурации, должен стоить не один миллион баксов США: ради энтузиазма прикиньте, сколько стоят, скажем, только 600 Гбайт оперативки? Появляется естественный вопрос: какие задачки так важны, что требуются компы ценой в несколько миллионов баксов? Либо очередной: какие задачки так сложны, что неплохого Pentium III для их решения недостаточно? Необходимы ЛИ НАМ СУПЕРКОМПЬЮТЕРЫ? Оказывается, существует целый ряд актуально принципиальных заморочек, которые просто нереально решать без использования суперкомпьютерных технологий. Возьмем, например, США, по местности которых дважды в год проходят разрушительные торнадо. Они сметают на собственном пути городка, поднимают в воздух авто и автобусы, выводят реки из берегов, заливая тем огромные местности. Борьба с торнадо - значимая часть южноамериканского бюджета. Только штат Флорида, который находится неподалеку от тех мест, где эти смерчи появляются, за последние годы издержал более 50 млрд баксов на критические меры по спасению людей. Правительство не жалеет средств на внедрение технологий, которые дозволили бы предвещать возникновение торнадо и определять, куда он направится. Как высчитать торнадо? Разумеется, что для этого нужно решить задачку о локальном изменении погоды, другими словами задачку о движении масс воздуха и рассредотачивании тепла в некотором регионе. Принципно это нетрудно, но на практике появляются две трудности. Неувязка 1-ая: чтоб увидеть возникновение смерча, нужно проводить расчет на соответствующих для его образования размерах, другими словами на расстояниях порядка 2-ух км. 2-ая трудность связана с правильным заданием исходных и граничных критерий. Дело в том, что температура на границах интересующего вас региона находится в зависимости от того, что делается в примыкающих регионах. Рассуждая далее, просто убедиться, что мы не можем решить задачку о смерче, не имея данных о климате на всей Земле. Климат на планетке высчитать можно, что и делается каждый денек во всех странах для составления среднесрочных прогнозов погоды. Но имеющиеся ресурсы позволяют вести расчеты только с очень огромным шагом - 10-ки и сотки км. Ясно, что к пророчеству смерчей таковой прогноз не имеет никакого дела. Нужно скооперировать две, казалось бы, плохо совместимые задачки: глобальный расчет, где шаг очень большой, и локальный, где шаг очень небольшой. Сделать это можно, но только собрав в кулаке вправду фантастические вычислительные ресурсы. Дополнительная трудность состоит к тому же в том, что вычисления не должны длиться более 4 часов, потому что за 5 часов картина погоды смазывается совсем, и все, что вы считаете, уже не имеет никакого дела к действительности. Необходимо не только лишь обработать огромный объем данных, да и сделать это довольно стремительно. Такое под силу только суперкомпьютерам. Пророчество погоды - далековато не единственный пример использования суперкомпьютеров. Сейчас без их не обойтись в сейсморазведке, нефте- и газодобывающей индустрии, автомобилестроении, проектировании электрических устройств, фармакологии, синтезе новых материалов и многих других отраслях. Так, по данным компании Форд, для выполнения crash-тестов, при которых реальные авто разбиваются о бетонную стену с одновременным замером необходимых параметров, со съемкой и последующей обработкой результатов, ей понадобилось бы от 10 до 150 прототипов для каждой новой модели. При всем этом общие затраты составили бы от 4 до 60 миллионов долларов. Использование суперкомпьютеров позволило сократить число прототипов на одну треть. Известной фирме DuPont суперкомпьютеры помогли синтезировать материал, заменяющий хлорофлюорокарбон. Нужно было найти материал, имеющий те же положительные качества: невоспламеняемость, стойкость к коррозии и низкую токсичность, но без вредного воздействия на озоновый слой Земли. За одну неделю были проведены необходимые расчеты на суперкомпьютере с общими затратами около 5 тысяч долларов. По оценкам специалистов DuPont, использование традиционных экспериментальных методов исследований потребовало бы 50 тысяч долларов и около трех месяцев работы - и это без учета времени, необходимого на синтез и очистку требуемого количества вещества. ПОЧЕМУ СУПЕРКОМПЬЮТЕРЫ СЧИТАЮТ ТАК БЫСТРО? Итак, мы видим, что без суперкомпьютеров сегодня действительно не обойтись. Осталось прояснить очередной вопрос: почему они считают так быстро? Это может быть связано, во-первых, с развитием элементной базы и, во-вторых, с использованием новых решений в архитектуре компьютеров. Попробуем разобраться, какой из этих факторов оказывается решающим для достижения рекордной производительности. Обратимся к известным историческим фактам. На одном из первых компьютеров мира EDSAC, появившемся в 1949 году в Кембридже и имевшем время такта 2 микросекунды (2·10-6 секунды), можно было выполнить 2n арифметических операций за 18n миллисекунд, другими словами в среднем 100 арифметических операций за секунду. Сравним с одним вычислительным узлом современного суперкомпьютера Hewlett-Packard V2600: время такта приблизительно 1,8 наносекунды (1,8·10-9 секунды), а пиковая производительность - около 77 миллиардов арифметических операций за секунду. Что все-таки получается? За полвека производительность компьютеров выросла более чем в семьсот миллионов раз. При всем этом выигрыш в быстродействии, связанный с уменьшением времени такта с 2 микросекунд до 1,8 наносекунды, составляет лишь около 1000 раз. Откуда же взялось остальное? Ответ предельно ясен - за счет использования новых решений в архитектуре компьютеров. Основное место среди них занимает принцип параллельной обработки данных, воплощающий идею одновременного (параллельного) выполнения нескольких действий. Различают два способа параллельной обработки: собственно параллельную и конвейерную. Оба способа интуитивно абсолютно понятны, поэтому сделаем лишь небольшие пояснения. Параллельная обработка Предположим для простоты, что некое устройство выполняет одну операцию за один такт. В данном случае тысячу операций такое устройство выполнит за тысячу тактов. Если имеется пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести тактов. Аналогично система из N устройств ту же работу выполнит за 1000/N тактов. Подобные примеры можно найти и в жизни: если один солдат выкопает траншею за 10 часов, то рота солдат из пятидесяти человек с такими же способностями, работая одновременно, справится с той же работой за 12 минут- принцип параллельности в действии! Кстати, пионером в параллельной обработке потоков данных был академик А. А. Самарский, выполнявший сначала 50-х годов расчеты, необходимые для моделирования ядерных взрывов. Самарский решил эту задачу методом сеток, посадив несколько десятков барышень с арифмометрами за столы (узлы сетки). Барышни передавали данные одна другой просто словестно и откладывали необходимые цифры на арифмометрах. Таким макаром, а именно, была рассчитана эволюция взрывной волны. Работы было много, барышни уставали, а Александр Андреевич ходил между ними и подбадривал. Так создали, можно сказать, первую параллельную систему. Хотя расчеты водородной бомбы провели мастерски, точность их оказалась очень низкой, так как узлов в используемой сетке было мало, а время счета получалось слишком большим. Конвейерная обработка Что необходимо для сложения двух вещественных чисел, представленных в форме с плавающей запятой? Целое множество мелких операций, таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары слагаемых последовательно, одну за другой, до того времени, пока не доходили до окончательного результата, и лишь после чего переходили к обработке следующей пары слагаемых. Идея конвейерной обработки заключается в расчленении операции на отдельные этапы, или, как это принято называть, ступени конвейера. Каждая ступень, выполнив свою работу, передает результат следующей ступени, одновременно принимая новую порцию входных данных. Получается очевидный выигрыш в скорости обработки. По правде, предположим, что в операции сложения можно выделить пять микроопераций, каждая из которых выполняется за один такт работы компьютера. Если есть одно неделимое последовательное устройство сложения, то 100 пар аргументов оно обработает за 500 тактов. Если теперь каждую микрооперацию преобразовать в отдельную ступень конвейерного устройства, то на пятом такте на разной стадии обработки будут находиться первые пять пар аргументов, и далее конвейерное устройство будет выдавать результат очередного сложения каждый такт. Очевидно, что весь набор из ста пар слагаемых будет обработан за 104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера). Идеи параллельной обработки появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и наконец сегодня все это в полном объеме воплощается в рабочих станциях и компьютерах. Все современные микропроцессоры, будь то Pentium III или РА-8600, Е2К или Power2 SuperChip, используют тот или иной вид параллельной обработки. Для того чтобы еще раз убедиться, что все новое - это хорошо забытое старое, достаточно лишь нескольких примеров. Уже в 1961 году создается компьютер IBM STRETCH, имеющий две принципиально важные особенности: опережающий просмотр вперед для выборки команд (при котором одновременно с текущей считываются команды, выполняемые позднее) и расслоение памяти на два банка - реализация параллелизма при работе с памятью. В 1963 году в Манчестерском университете разработан компьютер ATLAS, использующий конвейерный принцип выполнения команд. Выполнение команд разбито на четыре стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции. Это позволило уменьшить время выполнения команд в среднем с 6 до 1,6 микросекунды. В1969 году Control Data Corporation выпускает компьютер CDC-7600 с восемью независимыми конвейерными функциональными устройствами. СОВРЕМЕННЫЕ СУПЕРКОМПЬЮТЕРЫ А что все-таки сейчас используют в мире? По каким направлениям идет развитие высокопроизводительной вычислительной техники? Таких направлений четыре. Векторно-конвейерные компьютеры Две главные особенности таких машин: наличие конвейерных функциональных устройств и набора векторных команд. В отличие от обычных команд векторные оперируют целыми массивами независимых данных, другими словами команда вида А=В+С может означать сложение двух массивов, а не двух чисел. Характерный представитель данного направления - семейство векторно-конвейерных компьютеров CRAY, куда входят, например, CRAY EL, CRAY J90, CRAY T90 (в марте этого года американская компания TERA перекупила подразделение CRAY у компании Silicon Graphics, Inc.). Массивно-параллельные компьютеры с распределенной памятью Идея построения компьютеров этого класса тривиальна: серийные микропроцессоры соединяются при помощи сетевого оборудования - вот и все. Достоинств у такой архитектуры масса: если нужна высокая производительность, то можно добавить процессоры, а если ограничены финансы или заранее известна требуемая вычислительная мощность, то легко подобрать оптимальную конфигурацию. К этому же классу можно отнести и простые сети компьютеров, которые сегодня все чаще рассматриваются как дешевая альтернатива крайне дорогим суперкомпьютерам. (Правда, написать эффективную параллельную программу для таких сетей довольно сложно, а в некоторых случаях просто невозможно). К массивно-параллельным можно отнести компьютеры Intel Paragon, ASCI RED, IBM SP1, Parsytec, в какой-то степени IBM SP2 и CRAY T3D/T3E. Параллельные компьютеры с общей памятью Вся оперативка в таких компьютерах разделяется несколькими одинаковыми процессорами, обращающимися к общей дисковой памяти. Проблем с обменом данными между процессорами и синхронизацией их работы практически не возникает. Вместе с тем главный недостаток такой архитектуры заключается в том, что по чисто техническим причинам число процессоров, имеющих доступ к общей памяти, нельзя сделать большим. В данное направление суперкомпьютеров входят многие современные SMP-компьютеры (Symmetric Multi Processing), например сервер НР9000 N-class или Sun Ultra Enterprise 5000. Кластерные компьютеры Этот класс суперкомпьютеров, строго говоря, нельзя назвать самостоятельным, скорее, он представляет собой комбинации предыдущих трех. Из нескольких процессоров, традиционных или векторно-конвейерных, и общей для них памяти формируется вычислительный узел. Если мощности одного узла недостаточно, создается кластер из нескольких узлов, объединенных высокоскоростными каналами. По такому принципу построены CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, последние модели IBM SP2 и другие. В текущее время именно это направление считается наиболее перспективным. Дважды в год составляется список пятисот самых мощных вычислительных установок мира (его можно посмотреть в Интернете по адресу http://parallel.ru/top500.html). Согласно последней редакции списка top500, вышедшей в ноябре прошлого года, первое место занимает массивно-параллельный компьютер Intel ASCI Red. На второй позиции стоит компьютер ASCI Blue-Pacific от IBM, объединяющий 5808 процессоров PowerPC 604e/332MHz. Оба эти суперкомпьютера созданы в рамках американской национальной программы Advanced Strategic Computing Initiative, аббревиатура которой и присутствует в названии. Производительность компьютера, стоящего на последнем, 500-м, месте в списке самых мощных, составляет 33,4 миллиарда операций за секунду. Если мощность существующих компьютеров поражает, то что говорить о планах. В декабре 1999 года корпорация IBM сообщила о новом исследовательском проекте общей стоимостью около 100 миллионов долларов, цель которого - построение суперкомпьютера, в 500 раз превосходящего по производительности самые мощные компьютеры сегодняшнего дня. Компьютер, имеющий условное название Blue Gene, будет иметь производительность порядка 1 PETAFLOPS (1015 операций за секунду) и использоваться для изучения свойств белковых молекул. Предполагается, что каждый отдельный процессор Blue Gene будет иметь производительность порядка 1 GFLOPS (109 операций за секунду). 32 подобных процессора будут помещены на одну микросхему. Компактная плата размером 2x2 фута будет вмещать 64 микросхемы, что по производительности не уступает упоминавшимся ранее суперкомпьютерам ASCI, занимающим площадь 8000 квадратных метров. Более того, 8 таких плат будут помещены в 6-футовую стойку, а вся система будет состоять из 64 стоек с суммарной производительностью 1 PFLOPS. Фантастика!
Вычислительный кластер Московского государственного университета им. М. В. Ломоносова - минимальная стоимость, суперкомпьютерная производительность. В настоящий момент это самая мощная вычислительная система, установленная в вузе России. СУПЕРКОМПЬЮТЕРЫ В РОССИИ Идеи построения собственных суперкомпьютерных систем существовали в России всегда. Еще в 1966 году М.А.Карцев выдвинул идею создания многомашинного вычислительного комплекса М-9 производительностью около миллиарда операций за секунду. В то время ни одна из машин мира не работала с такой скоростью. Однако, несмотря на положительную оценку министерства, комплекс М-9 промышленного освоения не получил. Работы по созданию суперкомпьютерных систем и суперкомпьютерных центров ведутся в России и сейчас. Наиболее известна линия отечественных суперкомпьютеров МВС-1000, создаваемая в кооперации научно-исследовательских институтов Российской академии и промышленности. Супер-ЭВМ линии МВС-1000 - это мультипроцессорный массив, объединенный с внешней дисковой памятью, устройствами ввода/вывода информации и управляющим компьютером. Компьютеры МВС-1000 используют микропроцессоры Alpha 21164 (разработка фирмы DEC-Compaq) с производительностью до 1-2 миллиардов операций за секунду и оперативной памятью объемом 0,1-2 Гбайта. Спектр научных и практических задач, решаемых на таком компьютере, может быть очень велик: расчет трехмерных нестационарных течений вязкосжимаемого газа, расчеты течений с локальными тепловыми неоднородностями в потоке, моделирование структурообразования и динамики молекулярных и биомолекулярных систем, решение задач линейных дифференциальных игр, расчет деформаций твердых тел с учетом процессов разрушения и многие другие. Одна из самых мощных систем линии МВС-1000, установленная в Межведомственном суперкомпьютерном центре, содержит 96 процессоров. В ближайшее время в России, также как и в мире, активно используется кластерный подход к построению суперкомпьютеров. Покупаются стандартные компьютеры и рабочие станции, которые при помощи стандартных сетевых средств объединяются в параллельную вычислительную систему. По такому пути пошел, и, надо сказать, успешно, Научно-исследовательский вычислительный центр Московского государственного университета им. М.В.Ломоносова, создавший кластер из 12 двухпроцессорных серверов "Эксимер" на базе Intel Pentium III/500MHz (в сумме 24 процессора, более 3 Гбайт оперативки, 66 Гбайт дисковой памяти). Сегодня это крупнейшая вычислительная установка в вузе России, созданная для поддержки фундаментальных исследований и образования. При минимальной стоимости вычислительный кластер НИВЦ МГУ показывает производительность 5,7 миллиарда операций за секунду при решении системы линейных алгебраических уравнений с плотной матрицей размером 16000x16000! В дальнейшем планируется значительно увеличить мощность кластера как за счет добавления новых процессоров, так и за счет модернизации вычислительных узлов. ВМЕСТО ЗАКЛЮЧЕНИЯ К сожалению, чудеса в нашей жизни случаются редко. Гигантская производительность параллельных компьютеров и супер-ЭВМ с лихвой компенсируется сложностью их использования. Да что там использование, иногда даже вопросы, возникающие вокруг суперкомпьютеров, ставят в тупик. Как вы думаете, верно ли утверждение: чем мощнее компьютер, тем быстрее на нем можно решить данную задачу? Ну, конечно, нет... Простой бытовой пример. Если один землекоп выкопает яму за 1 час, то два землекопа справятся с задачей за 30 мин - в это еще можно поверить. А за сколько времени эту работу сделают 60 землекопов? Неужели за 1 минуту? Конечно, нет! Начиная с некоторого момента они будут просто мешать друг дружке, не ускоряя, а замедляя процесс. Так же и в компьютерах: если задача слишком мала, то мы будем дольше заниматься распределением работы, синхронизацией процессов, сборкой результатов и т. п., чем непосредственно полезной деятельностью. Но все вопросы, сопровождающие суперкомпьютер, конечно, решаются. Да, использовать суперкомпьютеры сложнее, чем персоналку: нужны дополнительные знания и технологии, высококвалифицированные специалисты, более сложная информационная инфраструктура. Написать эффективную параллельную программу намного сложнее, чем последовательную, ну и вообще создание программного обеспечения для параллельных компьютеров - это центральная проблема суперкомпьютерных вычислений. Но без супер-ЭВМ сегодня не обойтись, и отрадно, что в нашей стране есть понимание необходимости развития этих технологий. Так, в ноябре прошлого года в Президиуме Российской академии состоялось открытие межведомственного суперкомпьютерного центра. В процессе становления суперкомпьютерные центры в Дубне, Черноголовке, Институте прикладной математики РАН им. М. В. Келдыша, Институте математического моделирования РАН, Московском государственном университете им. М. В. Ломоносова. Создана и развивается линия отечественных суперкомпьютеров МВС-1000. Активно разворачивает свою деятельность Информационно-аналитический центр по параллельным вычислениям в сети Интернет WWW.PARALLEL.RU, осуществляющий информационную поддержку многих российских проектов. А иначе и нельзя. Параллельные вычисления и параллельные компьютеры - это реальность, и это уже навсегда. • ПОДРОБНОСТИ ДЛЯ ЛЮБОЗНАТЕЛЬНЫХ ЗАКОН АМДАЛА Представьте себе ситуацию: у вас есть программа и доступ, скажем, к 256-процессорному суперкомпьютеру. Вы, вероятно, ожидаете, что программа будет выполняться в 256 раз быстрее, чем на одном процессоре? А вот этого, вероятнее всего, и не произойдет. Предположим, что в вашей программе доля операций, которые нужно выполнять последовательно, равна f, причем 0 ≤ f ≤ 1 (эта доля определяется не по числу строк кода, а по числу операций в процессе выполнения). Крайние случаи в значениях f соответствуют полностью параллельным (f=0) и полностью последовательным (f=1) программам. Итак вот, для того, чтобы оценить, какое ускорение S можно получить на компьютере, состоящем из р процессоров, при данном значении f, воспользуемся законом Амдала: S ≤ 1/{f+(1- f)/p}. Если вдуматься как надо, то закон по сути страшный. Предположим, что в вашей программе лишь 10% последовательных операций, т.е. f=0,1. В данном случае закон утверждает: сколько бы процессоров вы ни использовали, ускорения работы программы более чем в десять раз никак не получите. Ну и то десять - это теоретическая оценка сверху самого лучшего случая, когда никаких других отрицательных факторов нет... Отсюда первый вывод - до того как переходить на параллельный компьютер (а любой суперкомпьютер именно таков), надо оценить заложенный в программе алгоритм. Если доля последовательных операций в нем велика - на значительное ускорение рассчитывать явно не приходится. В ряде всевозможных случаев последовательный характер алгоритма изменить не так сложно. Допустим, что в программе есть следующий фрагмент для вычисления суммы п чисел: s = 0, Do i = 1, n s = s + а(i) EndDo Этот алгоритм строго последовательный, потому что на i-той итерации цикла требуется результат (i-1)-вой, и все итерации выполняются одна за другой. В этом случае f=1, и, стало быть, никакого эффекта от использования параллельных компьютеров для выполнения этого алгоритма мы не получим. Вместе с тем выход очевиден. Поскольку в большинстве реальных случаев нет существенной разницы, в каком порядке складывать числа, выберем иную схему сложения. Сначала найдем сумму пар соседних элементов: а(1)+а(2), а(3)+а(4), а(5)+а(6) и т. д. Заметим, что при такой схеме все пары можно складывать одновременно. На следующих шагах будем действовать аналогично, получив вариант параллельного алгоритма. Казалось бы, в этом случае все проблемы удалось разрешить. Но остается еще множество других трудностей, связанных с разной производительностью процессоров, скоростью передачи данных и т. д. Но это уже тонкости параллельного программирования, с азами которого вы в скором времени сможете познакомиться в интернетовском курсе по адресу http://parallel.ru/vvv/. РАСПРЕДЕЛЕНИЕ ПЯТИСОТ САМЫХ МОЩНЫХ КОМПЬЮТЕРОВ МИРА ПО СТРАНАМ, ГДЕ ОНИ РАСПОЛОЖЕНЫ, И ФИРМАМ-ПРОИЗВОДИТЕЛЯМ
![]() ![]() ![]() ![]() Детальное описание иллюстрации Открытие межведомственного суперкомпьютерного центра в Президиуме Российской академии. На переднем плане 16-процессорный суперкомпьютер Hewlett-Packard V2250. ASCI RED, детище программы Accelerated Strategic Computing Initiative, - самый мощный на сегодня компьютер. Построенный по заказу Министерства энергетики США, он объединяет 9632 (!) процессора Pentium Pro, имеет более 600 Гбайт суммарной оперативки и общую производительность 3200 миллиардов операций за секунду. CRAY T3E - массивно-параллельный компьютер фирмы Тега Computer Company. Состоит из процессорных элементов, включающих процессор Alpha 21164 (с тактовой частотой 450 или 600 МГц), блок памяти объемом от 256 Мбайт до 2 Гбайт и устройство сопряжения с сетью. Системы ТЗЕ могут содержать до 2048 процессорных элементов. Вычислительный кластер Московского государственного университета им. М. В. Ломоносова - минимальная стоимость, суперкомпьютерная производительность. В настоящий момент это самая мощная вычислительная система, установленная в вузе России. ПОХОЖИЕ МАТЕРИАЛЫ
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Просмотров: 326 | | |
Всего комментариев: 0 | |