Ядерные вычисления - Nuclear computation

Ядерные вычисления это тип вычислений, который позволяет потоки чтобы либо порождать новые потоки, либо объединять множество потоков в один. Цель ядерных вычислений - использовать возможности многопоточности современных многоядерные процессоры где наблюдается тенденция к увеличению их аппаратных возможностей для вычисления большего количества потоков, чем у процессоров предыдущего поколения.[1][2]

Ядерные вычисления фокусируются на обработке в реальном времени таких вещей, как мультимедиа, например, обработка звука, когда существует крайний срок в реальном времени (частота дискретизации в Гц). По этой причине не следует блокировать а вычислительные процессы, которые изменяют разделяемую память, должны быть атомарными (выполняться за один такт без блокировки).

Ядерные вычисления позволяют вычислительному потоку использовать разделение потоков, чтобы превратить один поток во множество, или объединение потоков, чтобы превратить множество потоков в один.

Аналогия с ядерными реакциями

Как следует из названия «ядерные вычисления», существует аналогия между ядерными реакциями и ядерными вычислениями.

Аналогия деления ядра

В ядерной физике атомы распадаются или реагируют там, где ядро ​​атома расщепляется, образуя несколько атомов. В ядерных вычислениях вычислительный поток разделяется на несколько потоков обработки.

Аналогия ядерного синтеза

В ядерной физике атомы могут реагировать вместе, чтобы сливаться, когда несколько ядер атомов могут сливаться в одно ядро. В ядерных вычислениях несколько вычислительных потоков объединяются в один поток обработки.

Компонентная аналогия

Ядерные вычисленияЯдерная физика
поток обработкиатомное ядро
сигнализация и копирование в память (между потоками)выделение энергии (в результате ядерной реакции между ядрами)

Скорость

Ядерные взрывы происходят быстро и без блокировки. Что предполагает некоторые требования:

  • без замков
  • параллельно
  • упорядоченный
  • легкий вес
  • низкая задержка

Описание

Деление нити

Концептуально вычисление деления может вызвать цепную реакцию, когда один поток может сигнализировать многим потокам о начале обработки, и они также могут сигнализировать другим потокам о начале обработки. Можно голодать компьютер, когда у него заканчиваются ресурсы и он останавливается - либо из-за нехватки памяти, не питания, либо дисковых ресурсов.

Слияние ниток

Вычисление слияния - это тип вычислений, запускаемых порогом, когда несколько потоков сигнализируют одному ожидающему потоку, который начинает выполнение, когда необходимое количество сигналов потока превышает порог ожидающего потока.

Примеры реализации

СвязьЯзык программированияЛицензия
Ядерная обработкаC ++Бесплатная лицензия с липким авторским правом

История

Предыдущая аналогия между ядерными реакциями и вычислениями была названа петлевое деление и синтез которые были формами компилятор предварительная обработка. Деление цикла (распределение циклов) позволило компилятору разбить один вычислительный цикл на отдельные циклы во время компиляции. Слияние циклов (заедание циклов) позволило компилятору объединить множество вычислительных циклов в один во время компиляции. Эти процессы не находились под непосредственным контролем программиста, а решались и контролировались компилятором. В отличие от циклического деления и слияния ядерные вычисления, деление и синтез находятся под непосредственным контролем программиста или программы во время выполнения.

Смотрите также

Рекомендации

  1. ^ Ховард, Джейсон и др. «48-ядерный процессор передачи сообщений IA-32 с DVFS в 45-нм CMOS». Дайджест технических документов конференции по твердотельным схемам (ISSCC), 2010 IEEE International. IEEE, 2010 г.
  2. ^ Ферри, Дэвид и др. «Служба планирования в реальном времени для параллельных задач». Симпозиум по технологиям реального времени и встроенным технологиям и приложениям (RTAS), 2013 IEEE 19th. IEEE, 2013.