LINUX.ORG.RU

Выбор железа для числодробилки


0

5

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

Несколько слов о задаче. Я ищу основное состояние гамильтониана, который соответствует довольно большой матрице, грубо говоря, миллион на миллион элементов. В память такая матрица не влезет, поэтому я ищу собственные векторы с помощью модифицированного метода Ланцоша. Каждая его итерация вычисляет действие H на \Psi, а для этого помнить всю матрицу необязательно. Достаточно по мере необходимости вычислять матричные элементы H_{ij} при суммировании H_{ij} \Psi_{j}. Каждую i-ю координату вектора H\Psi можно считать отдельно, на своем ядре, то есть задача хорошо распараллеливается. Поэтому я ищу многоядерную конфигурацию. Задача решается в Mathematica под openSUSE. Важно, чтобы Linux хорошо поддерживал мою платформу.

Я присмотрел такую (приемлемую по цене) конфигурацию:

2 процессора Opteron 6272 (16 ядер каждый) + материнка Asus KGPE-D16, 16 планок памяти по 8 Гб.

Как вы думаете, хороший ли это выбор? Я сомневаюсь, уж не стоит ли посмотреть в сторону предыдущего поколения Оптеронов 6100, у которых ядер всего 12, но честных (на каждое ядро свой блок FPU). Также не знаю, хорошо ли работает эта плата Асус под Линуксом, но, в отличие от виденных мной Supermicro и Tyan, у нее на борту 6 SATA портов, а у меня как раз массив на SATA.

  1. Intel Xeon E5-2600 - за счёт 8-ми операций с плав.точ. за такт получишь реальный прирост производительности.
  2. Не собирай сам, возьми бренд с 3-х летней гарантией
  3. Посмотри в сторону Тесл. В CUDA с матрицами всё очень хорошо, и даже работа с разреженными там вполне неплохо реализована.

Брать лучше топовое железо, цена хоть и существенно больше, зато игрушка отработает не менее 7-ми лет.

AlexVR ★★★★★
()

у нее на борту 6 SATA портов, а у меня как раз массив на SATA.

И что? недорейд будешь на ней делать?

AlexVR ★★★★★
()

Opteron 6272 (16 ядер каждый)

AMD Opteron 6272 Processor

CPU Core Count: 8
CPU Thread Count: 32
...
AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

1. 8 операций в расчете на ядро? Как я понимаю, это только если AVX задействовать, а так четыре, то есть 32 на 8-ядерном Зионе. Я не уверен, что Mathematica поддерживает AVX. А 16-ядерный Оптерончик в любом случае даст 64 операции за такт. Или я ошибаюсь?

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

3. Я не уверен, что смогу переписать свой код на CUDA. Программист из меня хреновенький. Хотя было бы здорово задействовать сотни дешевых ядер.

SlonoInquisitor
() автор топика
Ответ на: комментарий от AlexVR

Ну у меня ж не imap-сервер. Скорость рейда вполне устраивает. Я на компьютерах считаю.

SlonoInquisitor
() автор топика
Ответ на: комментарий от SlonoInquisitor

3. Я не уверен, что смогу переписать свой код на CUDA. Программист из меня хреновенький. Хотя было бы здорово задействовать сотни дешевых ядер.

а вот лично мне было интересно. Если ваша разработка не предполагает секретности или вы можете вычленить хотя бы часть кода, которую можно попробовать переписать на CUDA - это было бы великолепно. Я бы попробовал. Для числодробилок некоторых типов действительно CUDA намного эффективнее CPU.

И судя по http://www.wolfram.com/products/mathematica-cuda-free-white-paper.html CUDA вполне поддерживается Mathematica.

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Я был бы очень рад помощи с переносом кода на CUDA. Подробности, наверное, удобнее обсудить по почте? Мой адрес gindikin@gmail.com

SlonoInquisitor
() автор топика

Mathematica

Убивать-убивать-убивать за такое! Mathematica она только для аналитики и прототипирования. Хочешь высокой производительности пиши на C++/Fortran

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Попробую без мата. Критические для производительности функции транслируются в C и компилируются в исполняемый код, который весьма эффективно распараллеливается. Все это делается штатными средствами Mathematica. Man Compile. Возможно, на чистом C код работал бы еще быстрее. Зато я потратил бы на его разработку и отладку в разы больше времени, попутно потеряв все удобства интерактивной среды — мгновенное построение графиков, и т.д.

SlonoInquisitor
() автор топика
Ответ на: комментарий от SlonoInquisitor

Милай. Я сам себе научник.

Тогда ты делаешь херню.

Выбор железа — вот в чем вопрос.

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

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Слушай, в этот чудесный вечер есть занятия поинтересней, чем грубить друг другу. Ты высказал свое мнение насчет Си. Оно во многом справедливо. Но у меня другая точка зрения на этот вопрос, основанная на реальном опыте результативной научной работы. Let's agree to disagree here.

<i>Кстати, кроме ланцоша, который сходится медленно, есть еще алгоритм Давидсона, который работает быстрее.</i>

Возможно. Я не знал о нем. Он мало распространен в condensed-matter community. Спасибо за наводку.

SlonoInquisitor
() автор топика
Ответ на: комментарий от unanimous

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

SlonoInquisitor
() автор топика
Ответ на: комментарий от King_Diamond

Может, и проще. Я тоже об этом подумывал, но еще не изучал вопрос всерьез. Но надо, чтобы там стояла Математика. Много ли таких арендодателей?

SlonoInquisitor
() автор топика
Ответ на: комментарий от SlonoInquisitor

Но надо, чтобы там стояла Математика. Много ли таких арендодателей?

Этого я не знаю, не интересовался вопросом, но, по идее, должны быть суперкомпы на линуксе, на которые можно поставить софт в своём юзерспейсе.

King_Diamond
()

2 процессора Opteron 6272 (16 ядер каждый) + материнка Asus KGPE-D16, 16 планок памяти по 8 Гб.

Интересно сколько на таком будет бенчмарк суслика рендериться...

anonymous
()
Ответ на: комментарий от SlonoInquisitor

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

Вот видишь, уже пошли проблемы, связанные с неверным выбором инструмента — было бы написанное на компилируемом языке, это бы даже не было проблемой. Ты, конечно, делай что хочешь, но выбор mathematica для HPC — неверный.

Относительно «много времени на написание с 0» — это только если это делать с самого начала. Когда есть работающий прототипа на mathematica — это в разы проще, писать и отлаживать.

unanimous ★★★★★
()
Ответ на: комментарий от King_Diamond

Этого я не знаю, не интересовался вопросом, но, по идее, должны быть суперкомпы на линуксе, на которые можно поставить софт в своём юзерспейсе.

В свой хомяк ставите что угодно - но все упрется в лицензии.

kernel ★★☆
()
Ответ на: комментарий от unanimous

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

Аналогичный математике FOSS пакет прекрасно бы подошел - не надо там про Си рассказывать рассказов. А в них и всяческие ffi есть, так что оптимизировать критические куски на Сях не будет проблемой.

Проблема в том что аналогов именно Математике как раз нет - это с матлаб условно совместимый с октавом (но модулей нет, зато mpi есть), так что можно при наличие желания это все кластеризовать.

kernel ★★☆
()
Ответ на: комментарий от kernel

Проблема в том что аналогов именно Математике как раз нет - это с матлаб условно совместимый с октавом (но модулей нет, зато mpi есть), так что можно при наличие желания это все кластеризовать.

Мне вот интересно, ты всегда накуренный или только когда на лор пишешь? Математика, мэпл есть под линукс — вопрос не в том, что их нет, а в том, что считать численные методы в математике это в корне неверно.

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Мне вот интересно, ты всегда накуренный или только когда на лор пишешь?

Каждый кто обвинял меня в укуренности, кроме 2.5 случаев, сливал потом в дискуссии. А все потому что это не я такой укуреный, это мир такой укуреный - но все обычно предпочитают этот факт игнорировать ;D

Математика, мэпл есть под линукс — вопрос не в том, что их нет, а в том, что считать численные методы в математике это в корне неверно.

Ну вот как сейчас - вы перечитайте мое сообщение. Где FOSS аналог Математики? Нету его. Значит как со связкой matlab-octave не выйдет :D

kernel ★★☆
()
Ответ на: комментарий от kernel

Каждый кто обвинял меня в укуренности, кроме 2.5 случаев, сливал потом в дискуссии.

Просто с идиотом ни у одного нормального человека нет ни сил, ни желания спорить. Можешь сразу записать мне «слив».

Где FOSS аналог Математики? Нету его. Значит как со связкой matlab-octave не выйдет :D

Нет, ты определенно дебил и разговариваешь с голосами в собственной голове.

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Просто с идиотом ни у одного нормального человека нет ни сил, ни желания спорить. Можешь сразу записать мне «слив».

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

Нет, ты определенно дебил и разговариваешь с голосами в собственной голове.

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

kernel ★★☆
()
Ответ на: комментарий от kernel

Нет, тратить на тебя время я не буду. Добро пожаловать во френд-лист!

unanimous ★★★★★
()
Ответ на: комментарий от BattleCoder

Спасибо, да. Там чуть хитрее. Матрица-то в память не влазит, но есть алгоритм диагонализации, которому она целиком и не нужна. Вот его-то и нужно переписать на CUDA. А на это моего программерского запала не хватает. Пока вот иду по дорогостоящему пути увеличения ядер CPU.

SlonoInquisitor
() автор топика
Ответ на: комментарий от Novell-ch

Ну, ради такого прироста не жалко и Кернигана-Ритчи перечитать.;) Прикольная ссылка, спасибо.

SlonoInquisitor
() автор топика

Хороший выбор. У нас именно 6272 (правда, платформа стоечная супермикро, а не асус), числодробилка очень хорошая, гораздо лучше 2хXeon X55xx.

Линуксу там живётся крайне хорошо (centos-6.2)

Deleted
()
Ответ на: комментарий от SlonoInquisitor

Кстати, подкину еще на вентилятор: а ты уверен, что математика умеет распараллеливаться более чем на 4 ядра?

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Это не на вентилятор. Это крайне уместный вопрос. Но я выяснял: да, умеет. Нужно будет докупить core extensions для обычной версии. Или поставить Gridmathematica (16 ядер, и больше при расширении лицензии).

SlonoInquisitor
() автор топика
Ответ на: комментарий от SlonoInquisitor

Просто у нас как-то приезжала тетечка из Wolfram, пиарила математику, и у меня смутно запало где-то в подсознании про странное ограничение на число ядер, но дело было давно, да и интересно мне тогда особо не было.

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Ну да, стандартная версия поддерживает 4 ядра, 8 тредов. Но это расширяется за деньги.

SlonoInquisitor
() автор топика

Вам нужны 3 видяхи нвидия и юзание CUDA, раз хорошо параллелится задача, а вовсе не два оптерона

Kompilainenn ★★★★★
()
Ответ на: комментарий от SlonoInquisitor

8 операций в расчете на ядро? Как я понимаю, это только если AVX задействовать, а так четыре, то есть 32 на 8-ядерном Зионе. Я не уверен, что Mathematica поддерживает AVX. А 16-ядерный Оптерончик в любом случае даст 64 операции за такт. Или я ошибаюсь?

По ссылке выше видно, что на фолдинге 2 новых ксеона сопаставимы с 4-мя оптеронами, (и да я дер у них только 8, просто каждое ядро держит до 4-х тредов)

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

Вот это уже хуже.

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

там с каждым годом всё легче и легче. Используя cublas, trust и прочие библиотеки, программировать на самом GPU уже и не нужно. и глянь сюда: http://www.nvidia.ru/object/cuda-training-calendar.html

AlexVR ★★★★★
()
Ответ на: комментарий от GAMer

Можно ссылку, чтобы понять, о чем речь? Или сами поясните в двух словах, если не затруднит. Навскидку, GTX 680 поддерживает наиболее свежую ревизию CUDA 3.0.

SlonoInquisitor
() автор топика
Ответ на: комментарий от SlonoInquisitor

«The GTX 680’s FP64 performance is 1/24th its FP32 performance, compared to 1/8th on GTX 580 and 1/12th on GTX 560 Ti.»

680 игровая карта, в вычислениях уступает 580.

«Just ran a few tests with CUFFT and on 1D complex-complex the GTX680 is 5~10% slower than the GTX580. I tried sizes between 256 and 8192, power of 2s.»
http://forums.nvidia.com/index.php?showtopic=226779
Народ там уже смотрит на АМД, у которых не так все шоколадно с софтом, но хорошо сбалансировано по производительности на $.

GAMer ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.