2009-12-10 7 views
1

Я ищу оборудование, которое должно работать около 256 вычислительно интенсивных в режиме реального времени одновременных задач в режиме 24 часа (одно многопоточное приложение C). Каждая задача занимает около 40-50 MFLOP, поэтому для всех задач требуется около 10 GFLOP. Скорость CPU-RAM незначительна. Все задачи должны управляться ядром Linux (32 бит, с SMP).Высокопроизводительное многопоточное приложение требует аппаратного обеспечения

Я ищу решение с одной материнской платой с одним многоядерным процессором (если такой ЦП существует). Если такой ЦП не существует, то мне нужно одно решение для материнской платы mulit-socket (с несколькими процессорами).

Можете ли вы, пожалуйста, порекомендовать мне любое профессиональное решение для CPU/материнской платы, которое удовлетворит такие требования? Также очень важно, что проблем с ядром Linux (2.6.25) нет. Нет виртуализации, нет необходимости в огромном ОЗУ или кеш-памяти процессора. Я также предпочел бы архитектуру Intel и хорошо зарекомендовавшую себя стабильность. У меня все еще есть сомнения, что это возможно вообще.

Заранее спасибо.

ОБНОВЛЕНИЕ: Я думаю, что нашел правильный ответ here и here.

+1

Хороший вопрос, который мог бы жить одинаково хорошо на SO, SU или SF. Лучшее место для него - это, вероятно, SuperUser, но ребята на ServerFault.COM, вероятно, обладают лучшими знаниями. –

+0

Спасибо, но SO/SU/SF ребята все еще читают/отвечают очень редко, если вообще. – psihodelia

+1

Вы хотите 10GFLOPS, но «CPU-RAM скорость невелика» ???? От и до того, куда идут 40-80 ГБ/с чисел с плавающей запятой? –

ответ

3

UltraSPARC T2 имеет 8 ядер с 8 потоками каждый. Встроенная память с высокой пропускной способностью и IO. T5140 переносит два из них на 128 аппаратных потоков.

Теоретическая максимальная производительность 8 блоков с плавающей запятой составляет 11 Giga flops в секунду (GFlops/s). Однако огромным преимуществом по сравнению с другими реализациями является то, что 64 потока могут совместно использовать единицы, и, таким образом, мы можем достичь чрезвычайно высокого процента теоретического пика. Наши эксперименты достигли почти 90% от 11 Гфлоп/с. - (http://blogs.oracle.com/deniss/entry/floating_point_performance_on_the)

+0

Спасибо. Это уже интересно, потому что у них есть информация о GFLOP! Но я боюсь, очень сложно найти, где купить. – psihodelia

+1

«T5140» в первом абзаце выше ссылки на страницу продукта Sun. $ 23k. –

+1

http://blogs.oracle.com/deniss/entry/overview_of_t2_systems –

1
  1. Возьмите несколько узлов Amazon EC2.

  2. Обновлено: А как насчет PS3? NASA использует их для своих имитационных двигателей.

  3. Возможно, использовать CPU + GPU на коммерческих серверах?

  4. Построить его вокруг FPGAs: в настоящее время некоторые варианты включают процессоры, которые могут запускать Linux.

+0

невозможным. это очень конкретное решение в реальном времени – psihodelia

+0

Я бы использовал решение FPGA, но для разработки конкретных ядер требуется больше времени/денег, чем я могу себе позволить. – psihodelia

0

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

Как вы упомянули, 10GFlops точно не чихается, поэтому на одной машине это будет дорого. Там также проблема, что вы делаете, когда машина ломается, у вас вряд ли будет вторая машина аналогичной спецификации. Если вы создаете кластер с использованием товарного оборудования, вы немного более устойчивы, и легче найти сменные машины.

+0

Я не уверен, что можно достичь 10GFLOP. У вас есть определенные модели? – psihodelia

+0

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

+0

@ Время: практически любое решение в режиме реального времени для работы с I/O не может запускаться на любом сетевом устройстве из-за сетевых задержек (диапазон миллисекунд!) – psihodelia

0

Не архитектура Intel, но они запускают Linux и имеют 64 ядра на одном кристалле.

TILEPro64

+0

Может ли это делать плавающая точка? Я не упоминаю об этом. – jsbueno

+0

@jsbueno - хороший момент - я не уверен. – Aaron

+0

нет информации о FLOPS, MIPS -> так что не серьезно покупать что-л. если вы не можете оценить его производительность – psihodelia

1

Несмотря на то, что вы дали нам спецификации вы думаете, что вам нужно, мы могли бы быть в состоянии помочь вам лучше, если вы сообщите нам, что приложение предназначено для выполнения, и как это было реализовано.

Возможно, существует лучший способ разделить работу или решить проблему, а не ваше текущее решение.

+0

Он предназначен для обработки сигналов. Это приложение относится к свертке во временной области и к различным цифровым фильтрам. – psihodelia

+0

Тогда вы гораздо лучше рассматриваете архитектуру на основе DSP, где вы должны иметь возможность уменьшить количество или скорость процессоров, потому что у них есть встроенные инструкции, которые обрабатывают эти вычисления намного быстрее и эффективнее, чем процессоры общего назначения. Существует ряд процессоров с центральным процессором общего назначения (например, ARM) в сочетании с DSP для сверхмощной обработки. Вы можете обнаружить, что вам нужно очень мало DSP для удовлетворения вашей вычислительной модели. –

0

Я вижу, что вы предпочли бы разведданные, но если вам нужен один чип, я снова предложить процессор Cell - его теоретическая пиковая производительность arount 25GFlops - ядро ​​2.6.25 было для него поддержку уже.

Вы можете попробовать предустановленную игрушку 3 для экспериментов (это будет стоить вам немного) или получить серверное решение примерно в 8 долларов США - вам придется переписывать и точно настраивать свои потоки возьмите преимущество сопутствующих процессоров SPU, но вы можете достичь своих вычислительных потребностей, не разбивая пота с помощью одного CELL (1 PPC core + 8 SPU)

NB: с playstation 3 у вас будет только 6 доступных сопроцессоров - но вы не видите, чтобы быть в бюджете с этим проектом. Итак, вы могли бы хотя бы попробовать набор разработчика ячеек IBM, который предлагает эмулятор, чтобы узнать, можете ли вы закодировать свое решение для запуска на нем ,

Тра являются коммерчески доступными ЭЛЕМЕНТАМИ продуктов, как в качестве автономных серверов в виде лопатки фабрике, и PCI Express надстройки плат для рабочих станций ПК от Mercury Computer Systems: http://www.mc.com/microsites/cell/products.aspx?id=6986

Mercury не перечисляют никаких цен на сайте, но ценовые очки, которые будут вокруг предыдущих, упомянули U $ 8000.00 для этих карт PCI Express.

Игровая приставка Playstation 3 можно приобрести за около $ 300,00 - и позволит вам прототипировать приложение и проверить, соответствует ли оно требуемой производительности. (Я сам получил один, и Fedora 9 работает на нем, хотя я сделал это как хоббист и до сих пор не использовал его для каких-либо расчетов - я также собрал кластер Playstation-3 12 для молекулярных симуляций на Местный университет. Приложенное им приложение не использовало мультимедийные SPU, в то время как я был в контакте с ним. Но даже при этом с тактовой частотой 3,5 ГГц они работали лучше, чем стандартные, по цене ПК, даже учитывая, что PS3 оцениваются в 5 раз выше здесь)

+0

, но где я могу купить этот процессор, правильную материнскую плату , и т.д. ? Мне нужно много из них в перспективе. – psihodelia

0

MFLOPS и GFLOPS - очень плохие индикаторы того, насколько хорошо программа может работать на любом CPU. В наши дни кеш-память намного важнее; возможно, точность предсказания ветвления.

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