Использование компьютеров в научных исследованиях
Прошло немногим более 50 лет с момента появления первых электронных вычислительных машин — компьютеров. За это время сфера их применения охватила практически все области человеческой деятельности. Сегодня невозможно представить себе эффективную организацию работы без применения компьютеров в таких областях, как планирование и управление производством, проектирование и разработка сложных технических устройств, издательская деятельность, образование — словом, во всех областях, где возникает необходимость в обработке больших объемов информации. Однако наиболее важным по-прежнему остается использование их в том направлении, для которого они собственно и создавались, а именно, для решения больших задач, требующих выполнения громадных объемов вычислений. Такие задачи возникли в середине прошлого века в связи с развитием атомной энергетики, авиастроения, ракетно-космических технологий и ряда других областей науки и техники.
В наше время круг задач, требующих для своего решения применения мощных вычислительных ресурсов, еще более расширился. Это связано с тем, что произошли фундаментальные изменения в самой организации научных исследований. Вследствие широкого внедрения вычислительной техники значительно усилилось направление численного моделирования и численного эксперимента. Численное моделирование, заполняя промежуток между физическими экспериментами и аналитическими подходами, позволило изучать явления, которые являются либо слишком сложными для исследования аналитическими методами, либо слишком дорогостоящими или опасными для экспериментального изучения. При этом численный эксперимент позволил значительно удешевить процесс научного и технологического поиска. Стало возможным моделировать в реальном времени процессы интенсивных физико-химических и ядерных реакций, глобальные атмосферные процессы, процессы экономического и промышленного развития регионов и т.д. Очевидно, что решение таких масштабных задач требует значительных вычислительных ресурсов.
Раздел 1. Введение
Вычислительное направление применения компьютеров всегда оставалось основным двигателем прогресса в компьютерных технологиях. Одной из основных характеристик компьютеров является их производительность — величина, показывающая, сколько арифметических операций они могут выполнить за единицу времени. Именно производительность с наибольшей очевидностью демонстрирует масштабы прогресса, достигнутого в компьютерных технологиях. Например, производительность компьютера EDSAC, одного из самых первых компьютеров, составляла всего около 100 операций в секунду, в то время как пиковая производительность самого мощного на сегодняшний день суперкомпьютера Tianhe-1 составляет 2570 триллионов операций в секунду. Прогресс в данной области является очевидным и впечатляющим.
ИСТОРИЯ РАЗВИТИЯ КОМПЬЮТЕРОВ
... мы рассмотрим историю развития и историю изобретений вычислительной техники, а также сделаем краткий обзор о возможностях применения современных вычислительных систем и дальнейшие тенденции развития персональных компьютеров. Глава 1. Исторические предшественники компьютерам Начало развития технологий ...
Возникает вопрос: каким образом было достигнуто такое увеличение производительности? Ответ довольно прост: увеличение скорости работы электронных схем и широкое распараллеливание обработки данных.
Идея параллельной обработки данных как мощного резерва увеличения производительности вычислительных аппаратов была высказана Чарльзом Бэббиджем примерно сто лет назад, задолго до появления первого электронного компьютера. Однако на тот момент технологии не позволяли реализовать эту идею. С появлением первых электронных компьютеров идеи параллельной обработки данных стали отправной точкой для разработки передовых и производительных вычислительных систем. Вся история развития высокопроизводительных вычислительных систем — это история реализации идей параллельной обработки в сочетании с увеличением частоты работы электронных схем.
Глава 1. Параллельная обработка данных
Параллельная обработка данных, основанная на идее одновременного выполнения нескольких действий, имеет три разновидности: конвейерность, векторизация и собственно параллельность.
1.1. Параллельность
Параллельность — это способность системы или устройства выполнять несколько операций одновременно, что позволяет сократить время выполнения задачи.
Если устройство способно выполнить одну операцию за единицу времени, то при наличии пяти таких же независимых устройств, работающих одновременно, тысяча операций может быть выполнена за двести единиц времени. Таким образом, система из N устройств может выполнить ту же работу за 1000/N единиц времени.
Примером параллельности можно привести работу солдат. Если один солдат может вскопать огород за 10 часов, то рота солдат из пятидесяти человек, работая одновременно, справится с той же работой за 12 минут.
Интересный пример использования параллельной обработки потоков данных представляет работа академика А.А.Самарского, который в начале 50-х годов выполнял расчеты для моделирования ядерных взрывов. Для этой задачи он поставил несколько десятков барышень с арифмометрами за столы. Барышни передавали данные друг другу и выполняли необходимые операции. Это можно считать первой параллельной системой.
Однако, несмотря на преимущества параллельности, точность расчетов может быть низкой, если используется недостаточное количество узлов или время счета слишком велико.
1.2. Конвейерность
Конвейерность — это метод организации работы системы или устройства, при котором задача разбивается на множество мелких операций, которые выполняются последовательно и параллельно.
Для сложения двух вещественных чисел, представленных в форме с плавающей запятой, требуется выполнение множества микроопераций, таких как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и другие.
В прошлом процессоры выполняли все эти микрооперации последовательно для каждой пары аргументов, пока не достигали окончательного результата, и только после этого переходили к обработке следующей пары слагаемых.
Системы обработки данных
... данных порядка 103-105 бит/сек. Расстояние не ограничено. В сосредоточенных системах используются параллельные интерфейсы и только для подключения периферийных устройств - последовательные. В распределенных системах ... 10 миллионов операций в секунду. Из-за ограничения абсолютной надежности базы Одномашинные СОД частично удовлетворяют потребности в автоматизации обработки данных. 2.2 Вычислительные ...
Однако, применение конвейерности позволяет распараллелить выполнение этих микроопераций, что значительно ускоряет процесс сложения чисел.
Идея конвейерной обработки
Идея конвейерной обработки заключается в разделении общей операции на отдельные этапы выполнения. Каждый этап выполняет свою работу и передает результат следующему этапу, одновременно принимая новую порцию входных данных. Таким образом, происходит совмещение ранее разделенных во времени операций, что приводит к значительному увеличению скорости обработки данных.
Для объяснения концепции конвейерной обработки предположим, что операция состоит из пяти микроопераций, каждая из которых выполняется за одну единицу времени. Если использовать одно неделимое последовательное устройство, оно сможет обработать 100 пар аргументов за 500 единиц времени.
Однако, если каждую микрооперацию выделить в отдельный этап конвейерного устройства, то на пятой единице времени на разных стадиях обработки будет находиться первые пять пар аргументов. И весь набор из ста пар будет обработан за 5+99=104 единицы времени. Таким образом, получается ускорение почти в пять раз (по числу ступеней конвейера) по сравнению с последовательным устройством.
На первый взгляд, можно подумать о замене конвейерной обработки обычным параллелизмом путем дублирования основного устройства в соответствии с числом ступеней конвейера. В этом случае пять устройств смогут обработать 100 пар аргументов за 100 единиц времени, что быстрее, чем время работы конвейерного устройства.
Однако, следует учесть, что увеличение числа устройств в пять раз приведет к значительному росту как объема аппаратуры, так и ее стоимости. Например, если на автозаводе решить убрать конвейер и продолжить выпуск автомобилей в том же темпе, то придется нанять тысячу бригад, каждая из которых полностью будет собирать автомобиль от начала до конца и выполнять сотни операций. В таком случае стоимость каждого автомобиля значительно возрастет.
Таким образом, конвейерная обработка позволяет существенно ускорить выполнение операций, избегая необходимости увеличивать количество устройств и, соответственно, затраты на аппаратуру и ресурсы.
1.3. Векторная обработка
Векторный процессор «умеет» обрабатывать одной командой не одно единственное значение, а сразу массив (вектор) значений. Для этого мы используем три массива — A1, A2 и P, которые имеют одинаковую размерность и длину. Предположим, что у нас есть оператор P=A1+A2. Векторный процессор выполнит попарное сложение элементов массивов A1 и A2 за один цикл выполнения команды, присваивая полученные значения соответствующим элементам массива P. Каждый операнд при этом хранится в особом, векторном регистре. Таким образом, векторный процессор выполняет сложение элементов массивов только однократно, в то время как для обычного последовательного процессора потребовалось бы несколько операций сложения.
Глава 2. Классификация архитектур по параллельной обработке данных
Самой ранней и наиболее известной классификацией архитектур вычислительных систем является классификация, предложенная в 1966 году М.Флинном (Flynn).
Реферат база данных основа информационной системы
... баз данных (БД), системы управления базами данных (СУБД) и пакетов прикладных программ (ППП). 2. Классификация БД По технологии обработки данных БД подразделяются на ... если данные в информационной системе структурированы. Структурирование данных рассмотрим на примере ... тем, что на первых этапах внешняя память вычислительных систем была несовершенной, т.е. надежное хранение больших объемов данных ...
Она основана на понятии потока, которое может быть определено как одна последовательность элементов, команд или данных, обрабатываемая процессором. Флинн выделяет четыре класса архитектур на основе числа потоков команд и потоков данных.
Таким образом, классификация архитектур вычислительных систем основана на их способности обрабатывать потоки команд и данных. Это предоставляет больше гибкости в решении вычислительных задач с использованием различных архитектур. Векторная обработка, в свою очередь, позволяет снизить время выполнения операций за счет обработки массива значений одной командой.
Глава 3. Архитектуры MIMD
Систематика Флинна широко используется при конкретизации типов компьютерных систем. Она классифицирует системы на основе числа потоков команд и данных, что позволяет определить их архитектуру. В данной классификации выделяются четыре основных типа архитектур: SISD, MISD, SIMD и MIMD.
- SISD (Одиночный поток команд и одиночный поток данных) — это классическая последовательная архитектура, где все команды обрабатываются последовательно и инициируют одну операцию с одним потоком данных. Несмотря на то, что такие машины могут использовать конвейерную обработку для повышения скорости, они не являются высокопроизводительными системами.
- MISD (Множественный поток команд и одиночный поток данных) — это архитектура, которая предполагает наличие нескольких процессоров, обрабатывающих один и тот же поток данных. Однако реальных примеров систем такого типа пока не существует, и эта архитектура не получила широкого признания в научном сообществе.
- SIMD (Одиночный поток команд и множественный поток данных) — это архитектура, в которой сохраняется один поток команд, включающий векторные команды. Это позволяет выполнять одну арифметическую операцию над множеством данных одновременно. Обработка элементов вектора может производиться с помощью процессорной матрицы или конвейера.
- MIMD (Множественный поток команд и множественный поток данных) — это архитектура, в которой присутствуют несколько устройств обработки команд, каждое из которых работает со своим потоком команд и данных. Это позволяет достичь реального распараллеливания и увеличить производительность системы.
Систематика Флинна применяется для классификации компьютерных систем, и в большинстве случаев они относятся к классу MIMD. Однако исследователями предпринимались попытки детализировать эту систематику. Например, для класса MIMD была предложена структурная схема, которая основывается на способах организации оперативной памяти в многопроцессорных системах. Это позволяет различать два важных типа многопроцессорных систем — мультипроцессоры (с общей разделяемой памятью) и мультикомпьютеры (с распределенной памятью).
Мультипроцессоры являются компьютерными системами, в которых присутствует несколько процессоров, взаимодействующих между собой, и одно общее адресное пространство (ОЗУ) для всех процессоров. Они предоставляют возможность параллельной обработки задач и увеличения производительности системы. Существуют различные способы построения общей памяти в мультипроцессорных системах.
Проектирование и разработка реляционной базы данных для информационной ...
... анализу информации. Целью данной курсовой работы является создание реляционной базы данных зоомагазина и разработка приложения для работы с данной базой. В совокупности данная система должна обеспечивать возможности по ... сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся атрибутам. Каждое отношение должно обладать хотя ...
Одним из способов построения общей памяти является однородный доступ к памяти (UMA).
В этом случае используется единая, общая память, что служит основой для построения симметричных мультипроцессоров (SMP).
У таких систем все процессоры имеют равные права доступа к памяти.
Другим способом является неоднородный доступ к памяти (NUMA), где память физически распределена по различным частям системы, но логически она является разделяемой, что позволяет пользователю видеть единое адресное пространство. NUMA позволяет улучшить производительность системы путем уменьшения задержек при доступе к памяти.
Кроме того, существует архитектура многопроцессорных компьютеров SMP (Symmetric Multiprocessing), в которой два или более одинаковых процессоров (или ядер одного процессора) подключаются к общей памяти. Большинство современных многопроцессорных систем используют именно эту архитектуру, так как она позволяет эффективно использовать ресурсы процессоров и общую память.
Однако, архитектура SMP имеет свои ограничения. Например, большое количество конфликтов при обращении к общей шине может вызывать проблемы. Для решения этой проблемы память можно разделить на блоки и подключать к ним процессоры с помощью коммутаторов. Это позволяет распараллелить обращения от различных процессоров и снизить накладные расходы для систем с большим числом процессоров.
Таким образом, мультипроцессорные системы с общей памятью и архитектурой SMP являются эффективным способом увеличения производительности компьютерных систем. Они позволяют параллельно выполнять задачи и улучшить общую производительность системы.