Параллельное программирование
В настоящее время одним из самых актуальных направлений развития вычислительной техники является создание суперкомпьютерных систем для решения задач, требующих применения параллельных вычислительных методов. Знание современных тенденций развития вычислительной техники и аппаратных средств для достижения параллелизма, умение разрабатывать модели, методы и программы параллельного решения задач обработки данных следует отнести к важным квалификационным характеристикам современного программиста.
Распространение многоядерных процессоров, на которых стали работать обычные приложения, делает параллельного программирования все более распространенным и популярным.
В отличие от программирования последовательных вычислений, концептуальную основу которого составляет понятие алгоритма, реализуемого по шагам строго последовательно во времени, в параллельном программировании программа порождает совокупность параллельно протекающих процессов обработки информации, полностью независимых или связанных между собой статическими или динамическими пространственно-временными или причинно-следственными отношениями.
В технологии параллельного программирования имеются три дополнительных, чётко определённых этапа.
1. Определение параллелизма: анализ задачи с целью выделить подзадачи, которые могут выполняться одновременно;
2. Выявление параллелизма: изменение структуры задачи таким образом, чтобы можно было эффективно выполнять подзадачи. Для этого часто требуется найти зависимости между подзадачами и организовать исходный код так, чтобы ими можно было эффективно управлять;
3. Выражение параллелизма: реализация параллельного алгоритма в исходном коде с помощью системы обозначений параллельного программирования.
В настоящее время существует более 100 различных средств, позволяющих разрабатывать параллельные программы. Наиболее известные технологии: OpenMP, стандарт которой был разработан для языков Fortran, C и C++ ; система параллельного программирования PVM (Parallel Virtual Machine), позволяющая объединить набор разных компьютеров, связанных сетью, в общую вычислительную систему, называемую параллельной виртуальной машиной (поддерживает языки Fortran, C, C++, имеет средства сопряжения с языками Perl, Java); технология программирования CUDA (Compute Unified Device Architecture) – программно-аппаратное решение, позволяющее использовать видеопроцессоры NVIDIA для вычислений общего назначения; технология MPI – интерфейс передачи данных (message passing interface).
Современные задачи обработки информации, новые аппаратные и сетевые решения вычислительной техники делают необходимым изучение, как в школе и вузе, основных парадигм и технологий программирования.
Дата добавления: 2015-12-16; просмотров: 797;