В настоящее время я (главным образом) использую C++ для вычислительно-интенсивной эконометрики в своих исследованиях. Я хотел перейти к более продуктивной среде. D звучит многообещающе, но, возможно, недостаточно зрелым для того, чтобы я был полностью продуктивным в настоящее время. Недавно я встретил C# и библиотеку NMath. Это кажется очень впечатляющим. Кто-нибудь использует их для такого конца? Каковы ваши впечатления? Я готов отказаться от некоторой скорости во время выполнения, если это повысит мою производительность в целом (часы владения тикают). Вы оценили мысли и предложения!C# и NMath для вычислительных финансов и эконометрики
ответ
Я предполагаю, что вы имеете в виду Centerspace's NMath продукт?
Мы недавно начали использовать их в производственном приложении; хотя и очень легко до сих пор (выполняющая линейную регрессию для определения взаимосвязи между ГДж газа в газовой турбине против МВт, технически это особенность NMath Stats). До сих пор было приятно использовать, и их поддержка очень быстро реагировала на истекшую оценочную лицензию, ожидая, пока наш финансовый отдел обработает их счет.
Что касается производительности, то он использует Intel Math Kernel Library, где он может, поэтому производительность должна быть хорошей; это не вызвало негативных последствий для нашего ограниченного использования.
Я с нетерпением жду возможности использовать библиотеку в другом месте нашего приложения, как это уместно!
Я работаю в экономической фирме (EMSI), и мы используем D для большинства наших высокопроизводительных вычислений. Нативная скорость и эффективность критически важны, но она обеспечивает более высокий уровень абстракции, чем C, и меньше ошибок, чем C++ (IMHO). Это очень просто для интерфейса с BLAS, Intel MKL и т. Д., Которые мы используем для управления массивными матричными операциями за нашими моделями ввода/вывода в реальном времени. Одна хорошая вещь о повышении производительности D, которую часто упускают из виду, - это невероятно быстрый компилятор - я никогда не беспокоюсь о прогрессивных сборках даже в очень больших проектах.
Очень интересно. Что вы делаете для оптимизаторов, генераторов случайных чисел, статистических распределений? Бросьте свое? Я думаю, смотрел на D с очень бдительным взглядом.Кажется, он предлагает много обещаний для вычислительных эконометриков. Я хотел бы узнать больше о вашем опыте. – TJB
До сих пор мы в основном каталили свои собственные или использовали существующие C libs (есть много неплохих FOSS, а D использует CI AB). В первую очередь мы работаем с чрезвычайно большими объемами жестких данных (это то, что нам известно), и большая часть нашей теоретической работы напрямую применяется, поэтому, возможно, наш опыт отличается от того, что вы ищете. –
Я прочитал немного больше о D. Мне очень интересно, как вы используете D в EMSI. Не могли бы вы пообщаться в частном порядке? Большое спасибо! – TJB
Рекомендация относится к ILNumerics. Кажется, это одна из самых быстрых библиотек. Это было коммерческим несколько месяцев назад, но я использую его с тех пор, как раньше, раньше как библиотека с открытым исходным кодом.
Нам пришлось преобразовать массу кода Matlab для развертывания приложения для клиентов. ILNumerics был нашим первым (и в основном единственным) выбором, поскольку он использует тот же синтаксис, что и Matlab. Кроме того, его классы массива могут обрабатывать n измерений и много вещей в подмассивах, что было важно для нас. Вы найдете хороший пример кода here.
На мой взгляд, единственный недостаток: отсутствие специализированных функций для проектирования и только базовая статистика. Поэтому очень удобно создавать собственный алгоритм (используя std, cov, var, mean, abs и т. Д.), А затем распаковывать любой индикатор HILO из любого окна.
Я проверю это. Благодаря! – TJB
- 1. Pandas и расчеты финансов
- 2. Для петель и вычислительных скользящих средних
- 3. NSDecimalNumber для финансов
- 4. Лучший язык программирования для преподавания эконометрики?
- 5. Простая программа в C вычислительных некорректных областей и периметры
- 6. примеры вычислительных
- 7. Проектирование приложения для личных финансов
- 8. Akka модель для вычислительных задач
- 9. Matlab объяснение вычислительных ошибок
- 10. Хорошее предложение по языку программирования для финансов?
- 11. Количественный язык исследований финансов
- 12. Выбор правильного шаблона проектирования для вычислительных узлов
- 13. Размер локальной памяти OpenCL и количество вычислительных единиц
- 14. Производительность вычислительных констант
- 15. Проблемы импорт финансов Yahoo для питона
- 16. Каков предел запроса для API финансов Yahoo?
- 17. Дизайн базы данных приложений для личных финансов
- 18. Ошибка спичкой финансов Google
- 19. COBOL74 - Выполнение ВЫЧИСЛИТЕЛЬНЫХ кодов
- 20. Расчет вычислительных критериев Hibernate
- 21. CUDA требование вычислительных возможности
- 22. Javascript для округления в калькуляторе финансов
- 23. Каковы ваши «обязательные» пакеты Python для финансов?
- 24. Как преобразовать объекты NSNumber для вычислительных целей?
- 25. Каковы альтернативы find_by_sql для вычислительных тяжелых запросов?
- 26. Добыча данных в области финансов.
- 27. OpenCL: количество вычислительных единиц
- 28. F # рекурсивное связывание в вычислительных выражениях и хвостовой рекурсивности
- 29. Увеличение вычислительных возможностей Java
- 30. Когерентность памяти с помощью вычислительных шейдеров и изображенийStore
Интересно! Можете ли вы рекомендовать его функции массива? У нас много больших матричных и трехмерных манипуляций с массивами в узких петлях. Я тестировал свою библиотеку несколько лет назад, и в это время память взрывалась, а функции массива не существовали на самом деле? Интересно, улучшилась ли эта ситуация с тех пор? – user492238
@James: спасибо за ваш вклад. Я думаю, я попробую и посмотрю, как мне это нравится. Приятно знать, что он хорошо работает для вас. Звучит очень многообещающе. – TJB
Вы не должны ожидать снижения производительности во время выполнения. Наш продукт использует библиотеку математического ядра Intel, как говорит Джеймс, и наши конкуренты тоже. Время выполнения в основном внутри MKL для любых значительных вычислений. Функция линейной регрессии заканчивает выполнение разложений с использованием LAPACK (MKL). –