Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разные вопросы > Самый быстрый язык программирования


Автор: Wolf1994 9.3.2009, 22:22
Какой язык программирования самый быстрый в плане манипуляции цифровыми массивами? Если бы вы писали шахматную программу, какой бы язык выбрали для достижения максимальной производительности на среднестатистическом современном компьютере, управляемом Windows XP?

Автор: DissDoc 9.3.2009, 22:33
 smile Гыгыгы!
Я б ассемблер выбрал! На худой конец С++ и компилятор от MS

Автор: Lazin 9.3.2009, 22:33
я бы выбрал тот, который знаю :3
а вообще, фортран, си, с++

Автор: Wolf1994 9.3.2009, 23:09
Ассемблер... Разве на нём ещё программируют?

C / C++ / Fortran... Какой из этих языков выигрывает по производительности в работе с числовыми массивами? Зависит ли скорость элементарных математических функций от версии языка / года выпуска компилятора?

Автор: Cr@$h 10.3.2009, 00:08
Цитата(Wolf1994 @  10.3.2009,  00:09 Найти цитируемый пост)
Какой из этих языков выигрывает по производительности в работе с числовыми массивами?

Fortran.
Цитата(Wolf1994 @  10.3.2009,  00:09 Найти цитируемый пост)
Зависит ли скорость элементарных математических функций от версии языка / года выпуска компилятора? 

Да, т.к. сложность твоей программы будет достаточной, поэтому оптимизации компиляторв сыграют решаюшую роль. Советую использовать Intel.
Цитата(Wolf1994 @  9.3.2009,  23:22 Найти цитируемый пост)
Если бы вы писали шахматную программу, какой бы язык выбрали для достижения максимальной производительности на среднестатистическом современном компьютере, управляемом Windows XP? 

Fortran 2003 + OpenMP, т.к. род машин, про которые ты говоришь, "многоядерен".

Автор: skyboy 10.3.2009, 09:15
а я бы делал упор на распределенные вычисления, раз уж надо ставить рекорды - 80 "современных компьютеров, управляемых windows xp" всяко быстрее одного.

Автор: mrbrooks 10.3.2009, 13:37
тот, который знаю.

Автор: vinter 10.3.2009, 14:42
http://ru.wikipedia.org/wiki/CUDA

Автор: Cr@$h 10.3.2009, 17:31
Цитата(skyboy @  10.3.2009,  10:15 Найти цитируемый пост)
а я бы делал упор на распределенные вычисления,

Комп один, как заверяет автор.

Цитата(vinter @  10.3.2009,  15:42 Найти цитируемый пост)
CUDA 

Совсем не среднестатистический комп.

Автор: Alexeis 10.3.2009, 18:01
Wolf1994, язык тут не главное, главное алгоритмы + правильная настройка компилятора. При обработке массивов данных весьма эффективно использовать SSE/SSE2 и т.д. смотря что поддерживается компилятором. Как правило узким местом является всего несколько функций, вот их и нужно оптимизировать не чем-то типа фортрана, а лучше асма, поскольку компиляторы не умеют грамотно использовать SSE. Основной код на чем-то более выскоуровневом, все равно потри будут невысоки.

Автор: Samotnik 10.3.2009, 18:15
я согласен с Alexeis,  действительно, ЯП  не играет большой роли. Важен алгоритм, как ты хранить будешь, в чем, какой доступ использовать. 
Можно и на Java  довольно быстрые шахматы сделать  smile 

Автор: Wolf1994 10.3.2009, 18:19
Спасибо за ответы. Выбрал компилятор: http://www.bloodshed.net/devcpp.html , так как среды разработки уровня интеловских мне не по карману.

Пока вопрос решён.

Alexeis, прошу прощения за минус на сообщение - глюкнул тачпад.

Автор: Alexeis 10.3.2009, 18:20
Цитата(Samotnik @  10.3.2009,  17:15 Найти цитируемый пост)
Можно и на Java  довольно быстрые шахматы сделать

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

Автор: Cr@$h 11.3.2009, 13:10
Цитата(Alexeis @  10.3.2009,  19:01 Найти цитируемый пост)
вот их и нужно оптимизировать не чем-то типа фортрана, а лучше асма, поскольку компиляторы не умеют грамотно использовать SSE.

Неправильно. Это руками ещё надо научиться использовать SSE лучше, чем компилятор сам делает. А то будешь векторизовать строку матрицы, когда она по столбцам хранится или наоборот. Глупо писать, используя ассемблерные вставки. Это не только прошлый век, но и сужает возможности для оптимизации.
Цитата(Alexeis @  10.3.2009,  19:01 Найти цитируемый пост)
Основной код на чем-то более выскоуровневом, все равно потри будут невысоки. 

Весь код на как можно более высоком, но неуправляемом уровне. Чем выше уровень описания задачи, тем больше возможностей для птимизации. Одно дело создавать три вложенных цикла для умножения матриц, другое -- написать это одной строкой, да указав дополнительно, что M и N большие и хорошо бы разбить данные для эффективного использования кеша. Более того, на ассемблере вы на распараллелите циклы ну ни как. SSE руками напишете в лучшем случае. И всё.
 smile 
Цитата(Wolf1994 @  10.3.2009,  19:19 Найти цитируемый пост)
так как среды разработки уровня интеловских мне не по карману.

Если не в коммерческих целях, то под Linux есть бесплатная лицензия. Удачи.

Автор: NODEN 1.6.2009, 12:12
Можно использовать PureBasic.
Судя по http://vbnet.ru/articles/showarticle.aspx?id=220 он достаточно быстр, да и SSE/SSE2 поддерживает, правда эту поддержку надо включить в опциях проекта.

Автор: wad 26.3.2011, 20:00
Если куда не ассоциируется со среднестатистическим компом , то тогда OpenCL хотя я точно не уверен ЯП ли это  smile 

Автор: 500mhz 26.3.2011, 20:42
да не, советую DirectX, ну во первых как понятно из названия это такой прямой ЯП ну типа direct и все, а Х это x-ray то есть он еше и прозрачый для понимания то есть ясный. Кстати на нем пишут софт для военных целей, ну там ракеты танки  и фсе такое.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)