Вводная часть
Вводная часть
Японский проект параллельных интеллектуальных вычислительных систем 5-го поколения (конец 80-х – начало 90-х годов) не увенчался успехом [1], но его идеи и достижения даром не пропали, и сейчас без особой помпы в США развиваются работы по программе Американской Стратегической Компьютерной Инициативы (ASCI), в рамках которой к 2004 г. предполагалось создать на базе процессоров Pentium вычислительную систему на 100 тысяч процессоров с производительностью 100 терафлопс (1014 операций с плавающей запятой в секунду) с основным предназначением – развитие ядерного оружия без его натурных испытаний; в настоящее время уже реализован образец ASCI White на базе 8192 процессоров IBM SP Power3 375МГц с производительностью 7.3 тфлопс [2] (9.9 тфлопс). Безусловным лидером TOP500 является векторный суперкомпьютер NEC Earth Simulator с производительностью порядка 35.8 ТФлопс (40.9 ТФлопс). Наряду с военными применениями такого рода техника найдет широкое применение для прогнозирования погоды, синтеза новых лекарственных веществ с требуемыми свойствами, обеспечения защиты банковских систем и т.п. В [2] приведена таблица распределения суперкомпьютеров по странам и организациям и, оказывается, большая их часть используется правительственными учреждениями и банками, а не научно-исследовательскими организациями. К сожалению, вычислительная система, созданная в нашей стране занимает на данный момент только 95-е место в рейтинге с производительностью около 734 ГФлопс (1024ГФлопс). Многопроцессорные вычислительные системы и параллельное программирование приходят к нам не только со стороны суперЭВМ, но и от широко распространенных персональных ЭВМ на базе процессоров Intel (многопроцессорные конфигурации, параллельные процессы), что определяет практическую значимость и актуальность курса «Параллельное программирование».
В рамках данного курса мы с вами познакомимся с основными подходами к классификации вычислительных систем, реальными примерами спроектированных и реализованных вычислительных машин, с приемами и языками создания параллельных программ. Отдельное место будет занимать рассмотрение современных микропроцессорных архитектур, которые также не обходятся без параллелизма на уровне кристалла. Немалую роль в современных параллельных вычислениях играют сетевые кластерные системы, которые будут рассмотрены в данном курсе.