Это мой первый вопрос на этом сайте, поэтому я надеюсь, что не напортачу. :D
Я постараюсь быть как можно более конкретным.
Что мне нужно:
Что-то, что я могу программировать на C (или C-подобном языке).
Мне нужен процессор, который можно соединить в массив для массовых параллельных вычислений.
Блок должен иметь многоядерную архитектуру (достаточно 32-битного RISC), и ядра, а также блоки должны иметь возможность взаимодействовать друг с другом.
Все блоки должны быть одновременно программируемыми. Я не хочу программировать каждый из них вручную.
Каждое ядро будет запускать один и тот же простой алгоритм, но с другим одноразовым номером.
Скорость ядра, деленная на цену, должна быть как можно выше.
Полученный массив должен на несколько порядков превосходить стандартный настольный компьютер в отношении высокопараллельных вычислений.
Решение не должно быть слишком сложным.
Энергоэффективность меня не особо волнует. Пока для этого не требуется невероятное количество энергии (например, частная атомная электростанция на процессор), это не должно быть проблемой.
Для чего мне это нужно:
Нейронные сети и различные другие реализации машинного обучения
Нахождение простых чисел, а также другие задачи, связанные с математикой (например, гипотеза Коллатца и т. д.)
Хеширование и другие приложения грубой силы
Среди других параллельных программ.
Что я нашел до сих пор:
Вычисления с ускорением на графическом процессоре:
это решение кажется лучшим из тех, что я нашел до сих пор. Используя CUDA и OpenCL, я могу использовать аппаратные шейдеры графического процессора как отдельные ядра. Так майнинг биткойнов осуществлялся в прошлом.
Преимущество этого подхода в том, что я могу одновременно запускать сотни потоков. Также есть много онлайн-поддержки, использующей этот метод.
Недостатком этого подхода является то, что шейдеры графического процессора плохо работают с условными переходами, что мешает мне писать такие программы с множеством вложенных условий.
Микросхемы XMOS
Одной из первых микросхем семейства, которые мне показались подходящими, была линейка продуктов xCORE. Это микропроцессоры, которые относительно дешевы (~ 20 долларов США каждый) и могут иметь до 32 ядер.
Что немного сбивает с толку, так это тот факт, что единственным показателем скорости является MIPS. Глядя на руководство по подключению, они используют внешний кварц 25 МГц. Также не так много онлайн-поддержки.
Parallella Board
Это очень интересная маленькая плата, которая позиционируется как «суперкомпьютер размером с кредитную карту». Он работает на производной от Ubuntu и имеет сопроцессор Epiphany-III с 16 ядрами (я думаю). Говорят, что он может выполнять 90 GFLOPS.
Недостатком является то, что мне нужно больше ядер.
Epiphany-IV (E64G401)
Этот микропроцессор кажется совершенным. Она производится той же компанией, что и плата Parallella, и имеет 64 ядра RISC с колоссальной частотой 800 МГц.
Единственным недостатком является то, что эта микросхема снята с производства. :'(
Процессоры Kalray и карты PCIe
Снова очень интересное решение для параллельных вычислений, где процессоры имеют до 256 ядер. Kalray также предлагает обучение использованию своей продукции.
Недостатком является то, что нужно запрашивать цену, и кажется, что эти компоненты можно купить только у них напрямую. Также мне кажется, что они больше ориентированы на нетворкинг.
FPGA
также рассматривались, поскольку они могут выполнять целые алгоритмы за один такт.
Что я ищу, так это что-то, что также может выполнять очень большие алгоритмы, в то время как FPGA не имеют такого количества логических элементов.
В плане бюджета я очень гибкий. Итак, скажем, 10 000 долларов США.
Я бы предпочел разработать собственную печатную плату вычислительного массива с микросхемой, которую вы, ребята, порекомендовали, однако я открыт для других решений. Может быть, я уже нашел лучшее решение, но я еще не знаю его. Что вы думаете, дамы и господа?
Заранее большое спасибо!
-- Линус
Список изменений:
Добавил, что хотел бы программировать на C
Добавлены ПЛИС
Добавил, что меня не волнует энергопотребление
Добавлено, что я бы предпочел сделать свою собственную печатную плату.
Добавлен бюджет 10 000 usd
На данный момент наиболее доступным решением для этого, вероятно, является ПК с хорошим графическим процессором. Попробуйте эту конфигурацию, которая является достаточно мощной, не имеет узких мест и разумно доступна (компьютер небольшого форм-фактора):
Или, если у вас есть хорошая игровая установка, используйте ее. Перечисленная выше машина на самом деле является рекомендуемой игровой установкой малого форм-фактора.
Еще одна установка, чертовски дороже, чертовски больше, более чем в три раза быстрее, чем предыдущая установка, и все еще без каких-либо узких мест:
Кроме того, если вы можете найти много старых компьютеров по дешевке (например, моя школа продает более 100 компьютеров с процессором Core 2 Duo по 15 долларов каждый после их замены новыми машинами i5), вы можете собрать несколько десятков из них и бросить объедините их в кластер Beowulf, если вы знаете, как заставить эти кластеры работать.
Например, если вы собрали 30 таких систем Core 2 Duo с 512 МБ ОЗУ каждая, вы получите кластер с 60 ядрами и 30 ГБ ОЗУ.
Если вы сможете выиграть Sony PlayStation 3, которая все еще может работать под управлением Linux, этот зверь сможет вам очень помочь. Кстати, по данным USAF, объедините 1790 из них в кластер Beowulf, и вы получите суперкомпьютер из списка TOP500.
Лунгкэт
Линус Брендель
Лунгкэт
пользователь_1818839
Линус Брендель
Лунгкэт
орта
Линус Брендель
орта
орта
Линус Брендель
орта
Линус Брендель
Скотт Сейдман