Самый быстрый математический язык программирования? - PullRequest
7 голосов
/ 06 ноября 2011

У меня есть приложение, которое требует миллионы вычитаний и остатков, я изначально запрограммировал этот алгоритм в C # .Net, но для обработки этой информации требуется пять минут, и она мне нужна быстрее.

У меня естьсчитается perl, и это, кажется, лучшая альтернатива сейчас.Vb.net был медленнее в тестировании.C ++ может быть и лучше.Любой совет будет принята с благодарностью.

Ответы [ 7 ]

8 голосов
/ 07 ноября 2011
  1. Вам необходим скомпилированный язык, такой как Fortran, C или C ++. Другие языки предназначены для обеспечения гибкости, ориентации на объекты или других преимуществ и предполагают, что абсолютно высокая производительность не является вашим наивысшим приоритетом.

  2. Узнайте, как получить максимальную производительность от одного потока, и после того, как вы это сделаете, изучите распределение работы между несколькими ядрами, например, с MPI. Чтобы получить максимальную производительность в одном потоке, я делаю одношаговое действие на уровне машинных инструкций, чтобы убедиться в том, что в нем нет ничего, что могло бы быть удалено.

5 голосов
/ 06 ноября 2011

Некоторые вычисления достаточно регулярны, чтобы извлекать выгоду из GPGPU: последние графические карты - это по существу специализированные массивно-параллельные числовые сопроцессоры. Например, вы можете кодировать свои числовые ядра в OpenCL . В противном случае, выучите C ++ 11 (не какой-то более ранней версии стандарта C ++) или C. И во многих случаях Ocaml может быть почти таким же быстрым, как C ++, но гораздо проще кодировать с .

Возможно, ваша проблема может быть решена scilab или R , я не понял этого достаточно, чтобы помочь больше.

И вы можете воспользоваться вашим многоядерным процессором, например, используя Pthreads или MPI

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

4 голосов
/ 06 ноября 2011

Если скорость выполнения является наивысшим приоритетом, это обычно означает Fortran.

0 голосов
/ 03 августа 2017

Попробуйте Джулия : его функция убийства легко кодируется высокоуровневым кратким способом, сохраняя производительность на том же уровне Fortran / C.

0 голосов
/ 16 августа 2015

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

0 голосов
/ 06 ноября 2011

Стандартным инструментом для математических числовых операций в технике часто является Matlab (или как свободная альтернатива октава или уже упомянутый scilab).

0 голосов
/ 06 ноября 2011

PARI / GP - лучшее, что я использовал до сих пор.Это написано в C.

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