Высокопараллельное многопоточное приложение требует аппаратного обеспечения

StackOverflow https://stackoverflow.com/questions/1882702

Вопрос

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

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

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

Заранее благодарю вас.

Обновить:Я думаю, что нашел правильный ответ здесь и здесь.

Это было полезно?

Решение

УльтраСПАРК Т2 Имеет 8 ядер по 8 потоков каждое.Интегрированная высокоскоростная память и ввод-вывод.А Т5140 несет два из них на 128 аппаратных потоков.

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

Другие советы

  1. Арендуйте несколько узлов Amazon EC2.

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

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

  4. Постройте это вокруг ПЛИС:в настоящее время некоторые варианты включают процессоры, способные работать под управлением Linux.

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

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

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

ПЛИТКАPro64

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

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

MFLOPS и GFLOPS — очень плохие показатели того, насколько хорошо программа может работать на любом конкретном процессоре.В наши дни объем кэша гораздо важнее;возможно, также точность предсказания ветвей.

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

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

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

ПРИМЕЧАНИЕ.:с playstation 3 у вас было бы только 6 доступных сопроцессоров, но вы, похоже, не ограничены в бюджете с этим проектом - Так что вы могли бы, по крайней мере, попробовать IBM cell developer kit, который предлагает эмулятор, чтобы посмотреть, сможете ли вы закодировать свое решение для запуска на нем.

Автошоу в продаже имеются клеточных продуктов, как в качестве автономных серверов в форма лезвия фабрики, и PCI курьерский дополнительные платы для рабочих станций ПК от Компьютерные Системы Меркурий :http://www.mc.com/microsites/cell/products.aspx?id=6986

Mercury не указывает никаких цен на сайте, но, как видно, цены на эти карты PCI Express примерно те же, что были указаны ранее - 8000.00 долларов США за эти карты PCI Express.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top