Луцив Дмитрий Вадимович
ЗАО «Ланит-Терком», СПбГУ
Химик, специалист по полупроводникам
22-core Xeon Broadwell-E5 — 2016 — 14 нм — $7,2\cdot10^9$
SPARC M7 — 2015 — 20 nm — $10^{10}$
Физико-технологические пределы:
Максимальный размер пластины в производстве — 450 мм в диаметре (экзотика)
В 2017 Intel, а в 2016 — Samsung собираются использовать 10 нм
$\frac{\pi 0,45^2}{(10\cdot10^{-9})^2} \approx 6,36 \cdot 10^{15}$, вроде бы есть запас?..
А зачем вообще транзистор? Может ну его?
С сайта Ремонт и настройка компьютера своими силами для девочек (на самом деле из кучи книжек):
Больше транзисторов $\not\Rightarrow$ хорошо само по себе
Мы заметили, что процессоры из примера многоядерные? А зачем?
Примеры восхитительных плодов безудержного стремления к распараллеливанию:
Z1, 1939
Алан Тюринг
Главный архитектор IBM System/360
$T(1)$ время вычисления на одном вычислителе, $T(n)$ — на $n$, $E(n) = \frac{T(1)}{T(n)}$
$\alpha$ последовательно, $1 - \alpha$ параллельно
Ускорение при распараллеливании:
$$S(n) \underset{n\rightarrow\infty}{\rightarrow} \frac{1}{\alpha}$$
$$S(n) = \frac{T(1)}{T(n)} =$$
$$= \frac{T(1)}{\alpha T(1) + (1 - \alpha) \frac{T(1)}{n}} < \frac{1}{\alpha}$$
В Политехе суперкомпьютер, на ПМПУ кластер, оба загружены на единицы процентов. Программировать некому.
Закон Мура
Даже если бы не он — память общая, шины общие
Если память и шины не общие, значит уже сдались
Следует
Передавать меньше
Передавать ближе
По возможности, считать и хранить рядом
Топология должна быть достаточной, но не избыточной
Волновые уравнения
Уравнения теплопроводности
Пример решения — Транспьютер (Inmos, UK, 1980-е)
Пример топологии — додекаэдр или другой вписанный многогранник
Вызов или приказ куда: наверх или вниз?
Централизованная система — винтовой селектор — масштабируется тяжело, точка отказа, зато элегантно
Распредеделённая система — инверсия направления этажным переключателем — можно развесить по шахте, но пыльно и обслуживать тяжело
DATA DIVISION.
FILE SECTION.
FD STUDENT.
01 STUDENT-FILE.
05 STUDENT-ID PIC 9(5).
05 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT.
05 WS-STUDENT-ID PIC 9(5).
05 WS-NAME PIC A(25).
01 WS-EOF PIC A(1).
Type anketa1=record
fio: string[45];
alg: integer;
phis: integer;
him: integer;
end;
Var stud:anketa1;
Gr:array[1..30] of anketa1;
ff:file of anketa1;
Пример менее олдскульный, но более трогательный =)
Пример — IBM IMS, 1960-е
Табулятор — 1890 (Hollerith (BTM)) – 1976 (IBM 407)
Сортировка (поразрядная, время близко к линейному)
Разбиение на классы эквивалентности
BTM — уже практически компьютеры, с памятью на магнитном барабане
Очень строгая система типов
Очень хорошие алгебра и логика в основе системы типов
Все ссылки косвенные, типизированные доменом
ROWID
— грязный хакACID — благословение и проклятие
Явная фиксация транзакций
Сериализуемость транзакций тяжело проверить в распределённой системе
Распределённые индексы — сложно $\implies$ легче таблицу держать на одном узле
Распределённые JOIN — медленно $\implies$ легче соединяемые таблицы тоже держать на одном узле
O-R impedance mismatch, особенно:
Structural and integrity differences — логические языки подошли бы лучше, чем объектно-ориентированные
Manipulative differences — объектно-ориентированные языки обычно императивные и часто довольно низкоуровневые (в
плане выразительной силы и встроенного уровня абстракции)
Разные свойства транзакций, и, по-хорошему, отсутствие транзакций в языках
Действительно современные (в активной разработке) и пока довольно робкие,
например, Clustrix.
Я привык гвозди забивать молотком, поэтому и забор буду красить молотком