2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother), страница 3
Описание файла
PDF-файл из архива "2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother)", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Для этого емупредлагается набор из нескольких сотен конструкций и функций, предназначенных "навсе случаи жизни". Он может создать действительно эффективную программу, еслиправильно воспользуется предложенными средствами. Но захочет ли он это делать? Нестоит забывать, что он должен решать свою задачу из своей предметной области, где исвоих проблем хватает. Маловероятно, что физик, химик, геолог или эколог с большойрадостью захочет осваивать новую специальность, связанную с параллельнымпрограммированием.
Возможность быстрого создания параллельных программ должнаприниматься в расчет наравне с другими факторами.Вычислительная техника меняется очень быстро. Предположим, что была найденатехнология, позволяющая быстро создавать эффективные параллельные программы. Чтопроизойдет через пару лет, когда появится новое поколение компьютеров? Возможныхвариантов развития событий два. Первый вариант — разработанные прежде программыбыли "одноразовыми" и сейчас ими уже никто не интересуется.
Бывает и так. Однако, какправило, в параллельные программы вкладывается слишком много средств (времени,усилий, финансовых затрат), чтобы просто так об этом забыть и начать разработку заново.Хочется перенести накопленный багаж на новую компьютерную платформу.
Скореевсего, на новом компьютере старая программа рано или поздно работать будет, и дажебудет давать правильный результат. Но дает ли выбранная технология гарантиисохранения эффективности параллельной программы при ее переносе с одногокомпьютера на другой? Скорее всего, нет. Программу для новой платформы нужнооптимизировать заново. А тут еще разработчики новой платформы предлагают вамочередную новую технологию программирования, которая опять позволит создать выдающуюся программу для данного компьютера. Программы переписываются, и так покругу в течение многих лет.Выбор технологии параллельного программирования — это и в самом деле вопросне простой. Если попытаться сделать обзор средств, которые могут помочь в решениизадач на параллельном компьютере, то даже поверхностный анализ приведет к списку изболее 100 наименований.В некоторых случаях выбор определяется просто.
Например, вполне жизненнойявляется ситуация, когда воспользоваться можно только тем, что установлено надоступном вам компьютере. Другой аргумент звучит так: "... все используют MPI, поэтомуи я тоже буду...". Если есть возможность и желание сделать осознанный выбор, этообязательно нужно делать. Посоветуйтесь со специалистами. Проблемы в дальнейшемвозникнут в любом случае, вопрос только насколько быстро и в каком объеме. Если выборбудет правильным, проблем будет меньше.
Если неправильным, то тоже не отчаивайтесь,будет возможность подумать о выборе еще раз. Сделав выбор несколько раз, вы станетеспециалистом в данной области, забудете о своих прежних интересах, скажем, оквантовой химии или вычислительной гидродинамике. Не исключено, что в итоге высможете предложить свою технологию и найти ответ на центральный вопроспараллельных вычислений: "Как создавать эффективные программы для параллельныхкомпьютеров?"В данной главе мы рассмотрим различные подходы к программированиюпараллельных компьютеров. Одни широко используются на практике, другие интереснысвоей идеей, третьи лаконичны и выразительны. Хотелось показать широкий спектрсуществующих средств, но и не сводить описание каждой технологии до одного абзацатекста. Противоречивая задача. Однако надеемся, что после изучения каждого раздела высможете не только проводить качественное сравнение технологий, но и самостоятельнописать содержательные программы.Знакомясь с различными системами параллельного программирования, обязательнообратите внимание на следующее обстоятельство.
Если вы решаете учебные задачи илипроизводственные задачи небольшого размера, вам почти наверняка не придетсязадумываться об эффективности использования параллельной вычислительной техники. Вэтом случае выбор системы программирования практически не имеет значения.Используйте то, что вам больше нравится. Но как только вы начнете решать большиезадачи и, особенно, предельно большие многовариантные задачи, вопрос эффективностиможет оказаться ключевым.Очень скоро станет ясно, что при использовании любой системы параллельногопрограммирования желание повысить производительность вычислительной техники навашей задаче сопровождается тем, что от вас требуется все больше и больше каких-тоновых сведений о структуре задачи, программы или алгоритма.
Ни одна системапараллельного программирования не гарантирует высокую эффективностьвычислительных процессов без предоставления дополнительных сведений.БИЛЕТ 9. Компьютеры с общей и распределенной памятью. Две задачипараллельных вычислений.1. Векторно-конвейерные компьютеры. Конвейерные функциональные устройства и наборвекторных команд - это две особенности таких машин. В отличие от традиционногоподхода, векторные команды оперируют целыми массивами независимых данных, чтопозволяет эффективно загружать доступные конвейеры, т.е. команда вида A=B+C можетозначать сложение двух массивов, а не двух чисел.
Характерным представителем данногонаправления является семейство векторно-конвейерных компьютеров CRAY куда входят,например, CRAY EL, CRAY J90, CRAY T90 (в марте 2000 года американская компанияTERA перекупила подразделение CRAY у компании Silicon Graphics, Inc.).2. Массивно-параллельные компьютеры с распределенной памятью.
Идея построениякомпьютеров этого класса тривиальна: возьмем серийные микропроцессоры, снабдимкаждый своей локальной памятью, соединим посредством некоторой коммуникационнойсреды - вот и все. Достоинств у такой архитектуры масса: если нужна высокаяпроизводительность, то можно добавить еще процессоров, если ограничены финансы илизаранее известна требуемая вычислительная мощность, то легко подобрать оптимальнуюконфигурацию и т.п.Однако есть и решающий "минус", сводящий многие "плюсы" на нет. Дело в том, чтомежпроцессорное взаимодействие в компьютерах этого класса идет намного медленнее,чем происходит локальная обработка данных самими процессорами. Именно поэтомунаписать эффективную программу для таких компьютеров очень сложно, а для некоторыхалгоритмов иногда просто невозможно.
К данному классу можно отнести компьютерыIntel Paragon, IBM SP1, Parsytec, в какой-то степени IBM SP2 и CRAY T3D/T3E, хотя вэтих компьютерах влияние указанного минуса значительно ослаблено. К этому же классуможно отнести и сети компьютеров, которые все чаще рассматривают как дешевуюальтернативу крайне дорогим суперкомпьютерам.3. Параллельные компьютеры с общей памятью. Вся оперативная память такихкомпьютеров разделяется несколькими одинаковыми процессорами. Это снимаетпроблемы предыдущего класса, но добавляет новые - число процессоров, имеющихдоступ к общей памяти, по чисто техническим причинам нельзя сделать большим.
Вданное направление входят многие современные многопроцессорные SMP-компьютерыили, например, отдельные узлы компьютеров HP Exemplar и Sun StarFire.4. Последнее направление, строго говоря, не является самостоятельным, а скореепредставляет собой комбинации предыдущих трех. Из нескольких процессоров(традиционных или векторно-конвейерных) и общей для них памяти сформируемвычислительный узел. Если полученной вычислительной мощности не достаточно, тообъединим несколько узлов высокоскоростными каналами. Подобную архитектуруназывают кластерной, и по такому принципу построены CRAY SV1, HP Exemplar, SunStarFire, NEC SX-5, последние модели IBM SP2 и другие.
Именно это направлениеявляется в настоящее время наиболее перспективным для конструирования компьютеров срекордными показателями производительности.БИЛЕТ 10. NUMA и ccNUMA архитектуры. Компьютеры Cm*, BBN Butterfly.Оба класса компьютеров (с общей и распределенной памятью) имеют свои достоинства,которые, правда, тут же плавно перетекают в их недостатки. Для компьютеров с общейпамятью проще создавать параллельные программы, но их максимальнаяпроизводительность сильно ограничивается небольшим числом процессоров. А длякомпьютеров с распределенной памятью все наоборот. Можно ли объединить достоинстваэтих двух классов? Одним из возможных направлений является проектированиекомпьютеров с архитектурой NUMA (Non Uniform Memory Access).Почему проще писать параллельные программы для компьютеров с общей памятью?Потому что есть единое адресное пространство и пользователю не нужно заниматьсяорганизацией пересылок сообщений между процессами для обмена данными.
Еслисоздать механизм, который всю совокупную физическую память компьютера позволял быпрограммам пользователей рассматривать как единую адресуемую память, все стало бынамного проще.По такому пути и пошли разработчики системы Cm*, создавшие еще в конце 70-х годовпрошлого века первый NUMA-компьютер. Данный компьютер состоит из наборакластеров, соединенных друг с другом через межкластерную шину. Каждый кластеробъединяет процессор, контроллер памяти, модуль памяти и, быть может, некоторыеустройства ввода/вывода, соединенные между собой посредством локальной шины. Когдапроцессору нужно выполнить операции чтения или записи, он посылает запрос с нужнымадресом своему контроллеру памяти.
Контроллер анализирует старшие разряды адреса, покоторым и определяет, в каком модуле хранятся нужные данные. Если адрес локальный,то запрос выставляется на локальную шину, в противном случае запрос для удаленногокластера отправляется через межкластерную шину. В таком режиме программа, хранящаяся в одном модуле памяти, может выполняться любым процессором системы.Единственное различие заключается в скорости выполнения. Все локальные ссылкиотрабатываются намного быстрее, чем удаленные. Поэтому и процессор того кластера, гдехранится программа, выполнит ее на порядок быстрее, чем любой другой.От этой особенности и происходит название данного класса компьютеров — компьютерыс неоднородным доступом к памяти.