Вы находитесь на странице: 1из 49

Программирование и

информатика
Лекция 1. Вводная
История развития
вычислительной техники

Святослав Александрович Шленов


Физический Факультет
МГУ им. М.В.Ломоносова
План лекции

 Структура курса
 Краткое историческое введение
(от простейших счет до суперкомпьютеров)

06.09.2014 Программирование и информатика: Лекция 1 2


Мотивация (потребности)
Компьютерное Автоматизация
Общие моделирование эксперимента

Редакторы, Языки
Пакеты научной программи-
графики, рования Си, Си++ Программирование
Аналитические аппаратуры
вычисления Численные
и др. методы

Программирование и информатика – 1-ый курс


+ дисциплины компьютерной физики – 2-ой курс

Знакомство Навыки Курсы по выбору


с возможностями работы
06.09.2014 Программирование и информатика: Лекция 1 3
Дисциплины по выбору
(2-ой курс)
•Компьютерная физика
(текстовые редакторы и пакет для построения научных графиков, символьные
вычисления, графический интерфейс + 2D графика в Си++)
•Программирование в среде Linux
•Параллельное программирование для решения задач
физики
•Использование среды графического программирования
LabView для создания систем автоматизации физического
эксперимента
•Программирование микроконтроллеров
•Проектирование на программируемых логических интег-
ральных схемах, архитектура, средства и методы работы
06.09.2014 Программирование и информатика: Лекция 1 4
Распределение материала курса
«Программирование и информатика»
по семестрам
II семестр

Язык программирования Си++


Объектно-ориентированное программирование

Семинары+практикум

I семестр

Основы программирования на языке Си


Фундаментальные компьютерные алгоритмы.
(сортировка, поиск, работа со списками)
Методы и алгоритмы вычислительной физики

Лекции+семинары+практикум
В конце семестра – зачет
5-42 Н-9
06.09.2014 Программирование и информатика: Лекция 1 5
Краткое историческое
введение

«В мире есть много трудных вещей, но нет


ничего труднее, чем четыре действия
арифметики».

Беда Достопочтенный, 673-735 гг.

Р.С Гутер, Ю.Л. Полунов «От абака до компьютера». М.: Знание, 1981.

06.09.2014 Программирование и информатика: Лекция 1 6


Доисторические примитивные
вычислительные устройства

Счеты – первый
калькулятор с
движущимися
механическими
частями
(3000 лет b.c., Вавилон)

06.09.2014 Программирование и информатика: Лекция 1 7


Механические компьютеры
В 1642, в Париже Блез Паскаль (Blaise Pascal, 1623-1662)
построил первую механическую счетную машину – «колесо Паскаля»

350х125х75 мм

Действия: + и –

06.09.2014 Программирование и информатика: Лекция 1 8


Арифметическая машина Паскаля

Около 10 лет - 50 разных экземпляров (из меди, слоновой


кости и т.п.).
Проблемы: материалы, механические, кадровые
Вычислительные: физическое представление чисел (угол!),
ввод и вывод данных, как выполнить операции (+/-)
механическим путем, перенос в разрядах.
Вычитание: сложение с десятичным дополнением
50 - 13 = 50 – (100-87) = 50 + 87 [-100] = 137 = 37
(в Машине Паскаля 6 разрядов, двоично-дополнительное представление в
современных системах)

06.09.2014 Программирование и информатика: Лекция 1 9


Двоично-дополнительное представ-
ление отрицательных чисел

Знак кодируется старшим битом (в двоичном представлении)

Отрицательное число хранится в двоично-дополнительном


виде: пример -2 при хранении данных в одном байте (8 бит):

210 = 0000 00102 -2: 1000 00102 ? 2-2=2+(-2) = 0 ?

инвертируем: 1111 1101 0000 0010


+1 + 1111 1110
1111 1110 0000 0000
Диапазон - 128 ÷ 127.

06.09.2014 Программирование и информатика: Лекция 1 10


Механические
компьютеры (продолжение)
В 1673 г. Готфрид Лейбниц (Gottfried Leibniz, 1646-1716)
построил т.н. “Калькулятор Лейбница”

Действия: +, -, *, /, sqrt(x)
Имел коммерческий успех, производился с 1862 по 1930

06.09.2014 Программирование и информатика: Лекция 1 11


Механические
компьютеры (продолжение)

“Железный Феликс” прошлого века во многом напоминает


своего собрата, Калькулятор Лейбница
06.09.2014 Программирование и информатика: Лекция 1 12
Механические компьютеры –
ткацкий станок Жаккарда

В 1801 г. Жозеф Жаккар


(Joseph-Marie Jacquard)
создал ткацкий станок для
материй с узором с
программным управлением,
в котором использовал
перфоленту.

06.09.2014 Программирование и информатика: Лекция 1 13


Разностная машина Чарльза
Бэббеджа
n n4 Первая вторая третья четвертая
разность разность разность разность
1 1 15 50 60 24
2 16 65 110 84 24
3 81 175 194 108 24
4 256 369 302 132 24
5 625 671 434 156 …
6 1296 1105 590 …
7 2401 1695 …
8 4096 …
… …

94 = 24 + 156 + 590 + 1695 +4096


Конвейерная система маркиза
де Прони
14

12

10

2
Табулирование
функций (tg(x)) 0.2 0.4 0.6 0.8 1 1.2 1.4

5 чел. – формулы и методы


7 чел. – численные значения в узловых точках
90 чел. – уплотняют таблицу
06.09.2014 Программирование и информатика: Лекция 1 15
Аналитическая машина
Чарльза Бэббеджа
В 1833 г. Чарльз Бэббидж начал работу над своей аналитической
машиной – первым в мире компьютером общего назначение, который
считывал инструкции с перфокарт (имела память – 1000 регистров,
логарифмические и др. вычисления). Разностная машина была
снабжена печатающим устройством.
В 1842 леди Ада Лавлейс
составила первую программу
(числа Бернулли, язык Ада)

06.09.2014 Программирование и информатика: Лекция 1 16


Механические компьютеры -
табулятор Холлерита
В 1896 г. Герман Холлерит
создал первую электро-
механическую машину—
Табулятор Холлерита—
для переписи населения
США

Основал в 1911 г. Tabulating


Machine Company, которая
в 1924 г. переименована в
International Business
Machines Corporation (IBM)

06.09.2014 Программирование и информатика: Лекция 1 17


Компактные механические
компьютеры – логарифмическая
линейка
“Карманный калькулятор” инженеров до 70-х годов
прошлого века—логарифмическая линейка

Первая логарифмическая линейка была создана


Уильямом Оутредом в Англии в 1622 г.!

06.09.2014 Программирование и информатика: Лекция 1 18


«Вы, конечно, шутите, мистер
Фейнман?»
«… чтобы понять, что именно происходит во время
взрыва бомбы, … требовалась намного больше
выкладок, чем мы могли делать. Но один умный
человек по имени Стэнли Френкель сообразил, что
вычисления, можно, сделать на машинах IBM.
Компания IBM выпускала устройства для сложения,
называемые табуляторами, и машины для умножения
– мультипликаторы, в которые можно было
закладывать карточки: машина считывала два числа с
карточки и умножала их. Были также устройства,
которые сравнивали числа, сортировали их и т.д. И
вот Френкель придумал замечательную программу.
Если бы мы собрали довольно много таких машин в
одной комнате, то мы смогли бы взять карточки и
запустить их по циклу.»
06.09.2014 Программирование и информатика: Лекция 1 19
Первые ЭВМ
В 1942 г. Джон Атанасов и Клиффорд Берри создали
в университете штата Айова первую цифровую ЭВМ--ABC

Атанасов сформулировал принципы


цифрового компьютера: в своей
работе он будет использовать
электричество и достижения
электроники:
•его работа будет основана на
двоичной системе счисления;
•основой запоминающего устройства
будут служить конденсаторы;
•будут использованы логические
электронные схемы.

06.09.2014 Программирование и информатика: Лекция 1 20


Первые ЭВМ - ENIAC

В 1946 г. в США Мочли и Эккертом


построена ЭВМ
ENIAC (Electronic Numerical Integrator
and Computer), University of Pennsylvania

Параметры: вес 30 тон, 2 этажа,


18000 ламп, 70000 сопротивлений,
10000 емкостей, 6000 реле
5000 арифм. оп/с;
программирование — перетыкание
проводов

06.09.2014 Программирование и информатика: Лекция 1 21


Архитектура фон Неймана
В 1946 г. фон Нейман
разработал концепцию
архитектуры компьютера
(принцип совместного
хранения программ и данных
в памяти компьютера )

В общем случае - физическое отделение процессорного


модуля от устройств хранения программ и данных.

В 1949 г. в Англии создан прототип современной


ЭВМ — EDSAC (ОЗУ, 512 ячеек памяти)
06.09.2014 Программирование и информатика: Лекция 1 22
А что происходило в СССР?

 1947 г., МЭСМ (малая электронно-счетная


машина); Киев, ин-т электротехники под рук.
акад. С.А. Лебедева
 1951 г., запуск в производство
 1952-54 гг., БЭСМ-1, Стрела, М-2, М-3
(серийно!!!)
 1961 г., Раздан-2 – первая транзисторная ЭВМ
в СССР
 Затем, Минск, Урал, Мир, БЭСМ-4, М-220,
БЭСМ-6, …

06.09.2014 Программирование и информатика: Лекция 1 23


ЭВМ “Стрела”
ЭВМ “Стрела”
2000 трехадресных команд в секунду, операции
с плавающей точкой над 43 разрядными числами,
ОЗУ на электронно-лучевых трубках, ПЗУ на п/п диодах
внешнее ЗУ – два накопителя на магнитной ленте
ввод — с перфокарт или с магнитной ленты

06.09.2014 Программирование и информатика: Лекция 1 24


ЭВМ БЭСМ-6
Знаменитая ЭВМ БЭСМ-6, во многом предвосхитившая
свое время

06.09.2014 Программирование и информатика: Лекция 1 25


Прогресс технологии -
транзистор

В 1947 г. Вильям Шокли,


Джон Бардин и Уолтер Браттейн
(Bell Labs) продемонстрировали первый
транзистор

06.09.2014 Программирование и информатика: Лекция 1 26


Прогресс технологии –
интегральные схемы

В 1961 г. – первая ИС
из 4-х транзисторов
(фото)

В 1968 – ИС из 180
транзисторов

06.09.2014 Программирование и информатика: Лекция 1 27


Прогресс технологии -
микропроцессор
В 1976 г. – первый 16 рр.
микропроцессор
(20000 транзисторов)

06.09.2014 Программирование и информатика: Лекция 1 28


Прогресс технологии -
материнская плата ПК

06.09.2014 Программирование и информатика: Лекция 1 29


Прогресс технологии -
интегральные схемы
Так выглядит
кремниевая
пластина с
напыленными на
нее ИС

06.09.2014 Программирование и информатика: Лекция 1 30


Поколения ЭВМ

1 Электронные 1945-55
лампы
2 Транзисторы 1955-65
(п/п триоды)
3 Интегральные 1965-70
схемы (ИС)
4 БИС 1970-1980

5 СБИС + новые 1980-…


технологии
06.09.2014 Программирование и информатика: Лекция 1 31
Закон Мура

Закон Мура
гласит, что число
транзисторов на
кристалле
удваивается
каждые два года

06.09.2014 Программирование и информатика: Лекция 1 wikipedia.org 32


Высокопроизводительные
вычисления (High Performance Computing)
 Области применения
 Высокие технологии, научные исследования, шоу
бизнес
 Рост производительности
 Много процессоров (100, 1000 и больше) –
суперкомпьютеры
 Векторные процессоры
 SMP – системы (symmetric multiprocessing, разделяют общую
память)
 MPP – (massive parallel processing, системы с массовым
параллелизмом)

06.09.2014 Программирование и информатика: Лекция 7 33


Высокопроизводительные
вычисления

SMP – системы (symmetric multiprocessing) разделяют


общую память Пример: двухпроцессорные системы
бытового уровня
06.09.2014 Программирование и информатика: Лекция 7 34
Высокопроизводительные
вычисления

В MPP (massive parallel processing) системе каждый


процессор имеет собственное ОЗУ
06.09.2014 Программирование и информатика: Лекция 7 35
Высокопроизводительные
вычисления

Вычислительный кластер: MPP система, объединяющая


компьютеры
- потенциально более дешевая система

06.09.2014 Программирование и информатика: Лекция 1 36


Вычислительные кластеры
 Кластер состоит из отдельных машин (узлов) и
объединяющей их сети:
 узлы, фронтальная машина, сервер, рабочая станция для
визуализации)

 сеть:
 Gigabit Ethernet
 Myrinet
 Scalable Coherent Interconnection (SCI)
 Infiniband — высокоскоростная коммутируемая последовательная
шина (до 120 ГБит/c)

 ПО: ОС Linux, ПО поддержки параллельного программирования


Параллельное
и распределения программирование:
вычислительной нагрузки
библиотеки MPI и OpenMP

06.09.2014 Программирование и информатика: Лекция 7 37


Проект Beowulf

 1994 г., NASA: 16-


процессорный
кластер: 486DX4/100
MHz, 16 MB
 10 Mbit Ethernet

06.09.2014 Программирование и информатика: Лекция 1 38


Вычислительный кластер МГУ

06.09.2014 Программирование и информатика: Лекция 1 39


Суперкомпьютер МГУ

 Количество ядер: 5000


 Пиковая производительность: 60
Tflop/s
 Производительность на Linpack:
47 Tflop/s (78.4 %)
 ОЗУ 5.5 Тбайт
TFlops (терафлопс) – 10 12 операций с плавающей точкой в секунду
Узлы кластера:
по тесту LINPAK – решение системы линейных уравнений.
Два 4-х ядерных
процессора Intel Xeon
3.0 ГГц, 8 Гбайт ОЗУ Кластер СКИФ
HDD 160 Гбайт
им. Чебышёва
06.09.2014 Программирование и информатика: Лекция 1 40
Новый суперкомпьютер в МГУ
 Число вычислительных узлов:
6199
 Пиковая производительность:
1,7 Pflop/s
 Производительность на Linpack:
901,9 Tflop/s (53%)
 ОЗУ 92 Тбайт

Основные узлы кластера:


Два 4-х ядерных
Кластер «Ломоносов»
процессора Intel Xeon + графический процессор Nvidia
X5570/5670 2.93 ГГц X2070

06.09.2014 Программирование и информатика: Лекция 1 41


Высокопроизводительные системы:
список Top500, июнь 2014
www.top500.org

06.09.2014 Программирование и информатика: Лекция 1 42


Высокопроизводительные системы:
список Top500, июнь 2014
www.top500.org

июнь 2011

06.09.2014 Программирование и информатика: Лекция 1 43


Высокопроизводительные системы:
список Top500, июнь 2014
www.top500.org

Высокопроизводительные системы:
список Top500, июнь 2011

06.09.2014 Программирование и информатика: Лекция 1 44


Страны в списке Top500
www.top500.org

Россия (13)

1,0% 5 шт.

06.09.2014 Программирование и информатика: Лекция 1 45


www.top500.org Россия в списке Top500 (июнь 2013)

06.09.2014 Программирование и информатика: Лекция 1 46


Архитектура в списке Top500
www.top500.org

06.09.2014 Программирование и информатика: Лекция 1 47


www.top500.org Рост производительности

06.09.2014 Программирование и информатика: Лекция 1 48


Литература по лекционному
материалу

1. Р.С. Гутер, Ю.Л. Полунов. От абака до


компьютера. – М.: Знание, 1975, 192 с
(2-ое издание – 1981).
2. www.top500.org

Материал лекции доступен на сайте:

http://ofvp.phys.msu.ru/science_education/lections/
- Раздел «Программирование и информатика»

06.09.2014 Программирование и информатика: Лекция 1 49