Причины потерь процессорного времени при организации последовательности вычислений внутри потока: 1. Ожидание ответа на запрос (поток спит). 2. Выполнение дополнительных "лишних" действий. Как способ устранения этих потерь - паттерн Пул потоков. Анализ императивного и функционального подхода к борьбе с "жадными" операциями. Эволюция методов организации параллельных вычислений на основе пула потоков.
Причины потерь процессорного времени при организации последовательности вычислений внутри потока: 1. Ожидание ответа на запрос (поток спит). 2. Выполнение дополнительных "лишних" действий. Как способ устранения этих потерь - паттерн Пул потоков. Анализ императивного и функционального подхода к борьбе с "жадными" операциями. Эволюция методов организации параллельных вычислений на основе пула потоков.
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
HighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2990.html
Мы ежедневно сталкиваемся с тем, что даже работающие более 15 лет в индустрии специалисты, путаются в понятиях и преимуществах и недостатках тех или иных архитектур больших СХД.
В своем докладе мы расскажем о разнице между distributed (распределенными), shared (общими) и параллельными файловыми системами, покажем, в каких задачах Scale In-системы превосходят Scale Out и наоборот.
...
Опыт разработки, отладки и внедрения системы горячего резервирования торговой...Ontico
HighLoad++ 2017
Зал «Сингапур», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3035.html
- "Горячий" резерв, что это и зачем это нужно? Всем ли нужен?
- Почему Московская Биржа решила это реализовывать.
- Классические архитектуры построения горячего резерва, обзор наработок.
- Почему потребовалось разрабатывать свой алгоритм. (Биржа должна быть максимально доступна, даже если алгоритм думает, что лучше, вообще, все прекратить на сегодня...).
...
Михаил Белопухов: OpenBSD: Куда катится крипто?Yandex
В своем докладе я расскажу о прошлом, настоящем и будущем использования криптографии и криптографического стека в OpenBSD. Мы коснемся поддержки AES-NI и AES-GCM, использования ChaCha20 в качестве замены ARC4 в PRNG. Кроме того, рассмотрим альтернативы алгоритмам, стандартизованным NIST: ChaCha20, Poly1305, Curve25519, и их использование в OpenSSH и OpenBSD.
A story of how we have implemented our own autoscaling for real-time data processing on AWS with help of Apache Kafka, Apache Samza, Druid and bits of game theory and achieved almost 2x hardware use reduction.
Ceph является одной из мнообещающих архитектур для построения облачных хранилищ данных. В презентации приведены основные возможности, описана архитектура, дан краткий обзор команд CLI
The document discusses using wikis to facilitate collaborative research projects. Wikis allow multiple users to simultaneously edit and share content online. They are well-suited for collaboration as students can work on projects from any location and see each other's contributions. The document provides instructions for setting up a wiki on Wikispaces, including creating pages for projects and sub-pages for student groups. Teachers are encouraged to use wikis for gathering student information during group projects.
The document discusses the services provided by a real estate agent and brokerage called Windermere. It highlights the agent's commitment to providing prompt, caring service and guiding clients through each step of the real estate process. It also summarizes Windermere's history, sales volumes, charitable foundation, and network of over 8,000 agents that can help clients nationwide.
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
HighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2990.html
Мы ежедневно сталкиваемся с тем, что даже работающие более 15 лет в индустрии специалисты, путаются в понятиях и преимуществах и недостатках тех или иных архитектур больших СХД.
В своем докладе мы расскажем о разнице между distributed (распределенными), shared (общими) и параллельными файловыми системами, покажем, в каких задачах Scale In-системы превосходят Scale Out и наоборот.
...
Опыт разработки, отладки и внедрения системы горячего резервирования торговой...Ontico
HighLoad++ 2017
Зал «Сингапур», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3035.html
- "Горячий" резерв, что это и зачем это нужно? Всем ли нужен?
- Почему Московская Биржа решила это реализовывать.
- Классические архитектуры построения горячего резерва, обзор наработок.
- Почему потребовалось разрабатывать свой алгоритм. (Биржа должна быть максимально доступна, даже если алгоритм думает, что лучше, вообще, все прекратить на сегодня...).
...
Михаил Белопухов: OpenBSD: Куда катится крипто?Yandex
В своем докладе я расскажу о прошлом, настоящем и будущем использования криптографии и криптографического стека в OpenBSD. Мы коснемся поддержки AES-NI и AES-GCM, использования ChaCha20 в качестве замены ARC4 в PRNG. Кроме того, рассмотрим альтернативы алгоритмам, стандартизованным NIST: ChaCha20, Poly1305, Curve25519, и их использование в OpenSSH и OpenBSD.
A story of how we have implemented our own autoscaling for real-time data processing on AWS with help of Apache Kafka, Apache Samza, Druid and bits of game theory and achieved almost 2x hardware use reduction.
Ceph является одной из мнообещающих архитектур для построения облачных хранилищ данных. В презентации приведены основные возможности, описана архитектура, дан краткий обзор команд CLI
The document discusses using wikis to facilitate collaborative research projects. Wikis allow multiple users to simultaneously edit and share content online. They are well-suited for collaboration as students can work on projects from any location and see each other's contributions. The document provides instructions for setting up a wiki on Wikispaces, including creating pages for projects and sub-pages for student groups. Teachers are encouraged to use wikis for gathering student information during group projects.
The document discusses the services provided by a real estate agent and brokerage called Windermere. It highlights the agent's commitment to providing prompt, caring service and guiding clients through each step of the real estate process. It also summarizes Windermere's history, sales volumes, charitable foundation, and network of over 8,000 agents that can help clients nationwide.
The document discusses how to unlock real mobile growth by focusing on the customer experience rather than vanity metrics. It emphasizes bridging the gaps between web and mobile platforms and apps to allow customers to seamlessly traverse services. It also highlights the importance of design, personalization, social features, maintaining relationships, and addressing the preferences of millennial users who are driving mobile growth. Real growth comes from understanding the customer and providing them an excellent experience across platforms.
This document discusses developing a megamodeling language called MegaL to model the linguistic architecture of software. Megamodeling aims to help manage diversity and heterogeneity across technologies by precisely modeling languages, technologies, programs and their relationships. MegaL is designed to be a general-purpose megamodeling language where entities and relationships can be extended, and everything is modeled as a resource accessible over HTTP. Key challenges include handling partial errors across many sources and providing extensibility while controlling it through the type system.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Machine learning c использованием нейронных сетей, Дмитрий ЛапинIT61
Обзор популярных фреймворков для обучения нейронных сетей, поделюсь собственным опытом их внедрения. Расскажу об использовании готовых предобученных сетей "как есть", дообучении (fine-tuning) и обучении собственных сетей с нуля.
Сергій Комлач
— Android розробник в Sticky Password (Чехія).
— Головні напрямки роботи — біометрична ідентифікація, кібер-безпека, кросс-платформенні рішення.
— Досвід у сфері розробки під Мобайл понад 8 років.
— Переможець Opera Mobile Store Awards.
— Спікер та учасник: Lviv Mobile Development Day, UAMobile, Frameworks Day Android, Code'n'Coffee Khmelnitsky, Google DevFest UA.
— Засновник та лідер Google Developers Group Kremenchuk.
2. Видеокарты сегодня
• На борту – десятки/сотни ALU на частоте более 1 GHz.
• В пике – 1 TFLOPS (и >100 GFLOPS двойной точности)
• API – произвольный доступ к памяти, структуры
данных, указатели, подпрограммы.
• Возраст API – почти четыре года, несколько поколений
графических процессоров.
3. С точки зрения программиста
Современные модели программирования GPU (CUDA,
AMD Stream, OpenCL, DirectCompute):
• Параллельный алгоритм задается парой: 1) ядро
(итерация цикла), 2) границы итерации.
• Ядро компилируется драйвером.
• На основе границ итерации создается решетка
вычислительных потоков.
• Входные данные копируются в видеопамять.
• Запускается выполнение задачи.
• Результат копируется в оперативную память.
4. Пример: SAXPY на CUDA
__global__ void Saxpy(float a, float* X, float* Y)
{
int i = blockDim.x * blockIdx.x + threadIdx.x;
Y[i] = a * X[i] + Y[i];
}
cudaMemcpy(X, hX, cudaMemcpyHostToDevice);
cudaMemcpy(Y, hY, cudaMemcpyHostToDevice);
Saxpy<<<256, (N + 255) / 256>>>(a, hX, hY);
cudaMemcpy(hY, Y, cudaMemcpyDeviceToHost);
7. По факту
Brahma:
• Структуры данных: data parallel array.
• Вычисления: выражения C#, LINQ-комбинаторы.
Accelerator v2:
• Структуры данных: data parallel array.
• Вычисления: арифметические операторы, набор
предопределенных функций.
Это работает для многих алгоритмов. Но что, если есть
ветвления или нерегулярный доступ к памяти?
8. А вот что
saxpy = @”__global__ void Saxpy(float a, float* X, float* Y)
{
int i = blockDim.x * blockIdx.x + threadIdx.x;
Y[i] = a * X[i] + Y[i];
}”;
nvcuda.cuModuleLoadDataEx(saxpy);
nvcuda.cuMemcpyHtoD(X, Y);
nvcuda.cuParamSeti(a, X, Y);
nvcuda.cuLaunchGrid(256, (N + 255) / 256);
nvcuda.cuMemcpyDtoH(Y);
9. Конфлакс
Ядра пишутся на С#: поддерживаются структуры
данных, локальные переменные, ветвления, циклы.
float a;
float[] x;
[Result] float[] y;
var i = GlobalIdx.X;
y[i] = a * x[i] + y[i];
10. Конфлакс
Не требует явного общения с неуправляемым кодом,
позволяет работать с родными типами данных .NET.
float[] x, y;
var cfg = new CudaConfig();
var kernel = cfg.Configure<Saxpy>();
y = kernel.Execute(a, x, y);
11. Как это работает?
• Front end: декомпилятор C#.
• Преобразование AST: инлайн вызываемых методов,
деструктуризация классов и массивов, отображение
вычислительных операций.
• Back end: генераторы PTX и многоядерного IL.
• Привязка к драйверу nvcuda, который умеет исполнять
программы на ассемблере.
12. Успехи
http://bitbucket.org/conflux/conflux
• Альфа-версия.
• Умеет вычислять hello-world параллельных
вычислений: умножение матриц.
• За вычетом [на текущий момент] высоких издержек на
JIT-компиляцию идея оправдывает себя даже для
наивного кодогенератора: 1x CPU < 2x CPU << GPU.
• Тройная лицензия: AGPL, исключение для OSS-
проектов, коммерческая.
14. Следующие шаги
• Оптимизации для графических процессоров (лесенка
для оптимальной пропускной способности при
транспозиции матриц).
• Полиэдральная модель оптимизации циклов
(конфигурируется относительно иерархии и размеров
кэшей, есть линейные эвристики, оптимизирующие
локальность данных в вычислительной решетке).
• Исполнение на кластере (следующий шаг после
полиэдральной модели: добавляется виртуальный
уровень кэша – вычислительный узел).