C # и NMath для вычислительных финансов и эконометрики - PullRequest
5 голосов
/ 17 февраля 2012

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

Ответы [ 3 ]

10 голосов
/ 17 февраля 2012

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

3 голосов
/ 17 февраля 2012

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

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

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

1 голос
/ 17 февраля 2012

Я полагаю, вы используете продукт Centerspace NMath ?

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

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

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

...