2012-02-16 1 views
5

В настоящее время я (главным образом) использую C++ для вычислительно-интенсивной эконометрики в своих исследованиях. Я хотел перейти к более продуктивной среде. D звучит многообещающе, но, возможно, недостаточно зрелым для того, чтобы я был полностью продуктивным в настоящее время. Недавно я встретил C# и библиотеку NMath. Это кажется очень впечатляющим. Кто-нибудь использует их для такого конца? Каковы ваши впечатления? Я готов отказаться от некоторой скорости во время выполнения, если это повысит мою производительность в целом (часы владения тикают). Вы оценили мысли и предложения!C# и NMath для вычислительных финансов и эконометрики

ответ

1

Я предполагаю, что вы имеете в виду Centerspace's NMath продукт?

Мы недавно начали использовать их в производственном приложении; хотя и очень легко до сих пор (выполняющая линейную регрессию для определения взаимосвязи между ГДж газа в газовой турбине против МВт, технически это особенность NMath Stats). До сих пор было приятно использовать, и их поддержка очень быстро реагировала на истекшую оценочную лицензию, ожидая, пока наш финансовый отдел обработает их счет.

Что касается производительности, то он использует Intel Math Kernel Library, где он может, поэтому производительность должна быть хорошей; это не вызвало негативных последствий для нашего ограниченного использования.

Я с нетерпением жду возможности использовать библиотеку в другом месте нашего приложения, как это уместно!

+1

Интересно! Можете ли вы рекомендовать его функции массива? У нас много больших матричных и трехмерных манипуляций с массивами в узких петлях. Я тестировал свою библиотеку несколько лет назад, и в это время память взрывалась, а функции массива не существовали на самом деле? Интересно, улучшилась ли эта ситуация с тех пор? – user492238

+0

@James: спасибо за ваш вклад. Я думаю, я попробую и посмотрю, как мне это нравится. Приятно знать, что он хорошо работает для вас. Звучит очень многообещающе. – TJB

+0

Вы не должны ожидать снижения производительности во время выполнения. Наш продукт использует библиотеку математического ядра Intel, как говорит Джеймс, и наши конкуренты тоже. Время выполнения в основном внутри MKL для любых значительных вычислений. Функция линейной регрессии заканчивает выполнение разложений с использованием LAPACK (MKL). –

10

Я работаю в экономической фирме (EMSI), и мы используем D для большинства наших высокопроизводительных вычислений. Нативная скорость и эффективность критически важны, но она обеспечивает более высокий уровень абстракции, чем C, и меньше ошибок, чем C++ (IMHO). Это очень просто для интерфейса с BLAS, Intel MKL и т. Д., Которые мы используем для управления массивными матричными операциями за нашими моделями ввода/вывода в реальном времени. Одна хорошая вещь о повышении производительности D, которую часто упускают из виду, - это невероятно быстрый компилятор - я никогда не беспокоюсь о прогрессивных сборках даже в очень больших проектах.

+2

Очень интересно. Что вы делаете для оптимизаторов, генераторов случайных чисел, статистических распределений? Бросьте свое? Я думаю, смотрел на D с очень бдительным взглядом.Кажется, он предлагает много обещаний для вычислительных эконометриков. Я хотел бы узнать больше о вашем опыте. – TJB

+0

До сих пор мы в основном каталили свои собственные или использовали существующие C libs (есть много неплохих FOSS, а D использует CI AB). В первую очередь мы работаем с чрезвычайно большими объемами жестких данных (это то, что нам известно), и большая часть нашей теоретической работы напрямую применяется, поэтому, возможно, наш опыт отличается от того, что вы ищете. –

+0

Я прочитал немного больше о D. Мне очень интересно, как вы используете D в EMSI. Не могли бы вы пообщаться в частном порядке? Большое спасибо! – TJB

3

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

Нам пришлось преобразовать массу кода Matlab для развертывания приложения для клиентов. ILNumerics был нашим первым (и в основном единственным) выбором, поскольку он использует тот же синтаксис, что и Matlab. Кроме того, его классы массива могут обрабатывать n измерений и много вещей в подмассивах, что было важно для нас. Вы найдете хороший пример кода here.

На мой взгляд, единственный недостаток: отсутствие специализированных функций для проектирования и только базовая статистика. Поэтому очень удобно создавать собственный алгоритм (используя std, cov, var, mean, abs и т. Д.), А затем распаковывать любой индикатор HILO из любого окна.

+1

Я проверю это. Благодаря! – TJB

Смежные вопросы