Actualmente estoy (en su mayoría) utilizando C++ para la econometría computacionalmente intensiva en mi investigación. He querido pasar a un entorno más productivo. D suena prometedor, pero tal vez no lo suficientemente maduro como para ser plenamente productivo actualmente. Me encontré con C# y la biblioteca de NMath recientemente. Parece muy impresionante. ¿Alguien los usa para tal fin? ¿Cuáles son tus experiencias? Estoy dispuesto a ceder algo de velocidad en el tiempo de ejecución si aumenta mi productividad en general (el tiempo de espera está en marcha). ¡Tus pensamientos y sugerencias apreciados!C# y NMath para Finanzas Computacionales y Econometría
Respuesta
Supongo que se refiere al producto Centerspace's NMath?
Recientemente hemos comenzado a usarlos en una aplicación de producción; aunque muy ligeramente hasta el momento (realizando una regresión lineal para determinar la relación entre GJ de entrada de gas a una turbina de gas vs MW fuera, técnicamente esto es una característica de NMath Stats). Ha sido un placer utilizarlo hasta ahora, y su apoyo fue muy rápido al responder a una licencia de evaluación caducada mientras esperábamos que nuestro departamento de finanzas procesara su factura.
En lo que respecta al rendimiento, utiliza el Intel Math Kernel Library donde puede, por lo que el rendimiento debe ser bueno; no ha causado ningún impacto negativo en el rendimiento de nuestro uso limitado.
¡Estoy deseoso de utilizar la biblioteca en otro lugar de nuestra aplicación, ya que es apropiado!
Trabajo para una firma de economía (EMSI) y usamos D para la mayoría de nuestras necesidades de computación de alto rendimiento. La velocidad y la eficiencia nativas son críticas, pero proporciona un nivel de abstracción mayor que C y menos errores que C++ (en mi humilde opinión). Es muy sencillo interactuar con BLAS, Intel MKL, etc. que utilizamos para potenciar las operaciones matriciales masivas detrás de nuestros modelos de E/S en tiempo real. Una cosa buena sobre el aumento de la productividad D que a menudo se pasa por alto es el compilador increíblemente rápido: nunca me preocupo por compilaciones progresivas, incluso en proyectos muy grandes.
Muy interesante. ¿Qué haces para optimizadores, generadores de números aleatorios, distribuciones estadísticas? Hazlo tu mismo? Creo que he estado mirando a D con mucha atención.Parece ofrecer muchas promesas para los econometristas computacionales. Me encantaría saber más de tus experiencias. – TJB
Hasta ahora hemos rodado nuestras propias librerías de C existentes o las hemos usado (hay varias FOSS bastante buenas y D usa ABI de C). Principalmente trabajamos con cantidades extremadamente grandes de datos duros (es por lo que somos conocidos) y la mayor parte de nuestro trabajo teórico se aplica directamente, por lo que tal vez nuestra experiencia es bastante diferente de lo que está buscando. –
He hecho más lecturas sobre D. Estoy muy interesado en cómo estás usando D en EMSI. ¿Estaría dispuesto a chatear en privado? ¡Muchas gracias! – TJB
Mi recomendación va hacia ILNumerics. Parece ser una de las bibliotecas más rápidas que hay. Se comercializó hace varios meses, pero lo he estado utilizando desde hace años, anteriormente como biblioteca de código abierto.
Tuvimos que convertir masas de código de Matlab para implementar una aplicación para los clientes. ILNumerics fue nuestra primera elección (y básicamente la única), ya que utiliza la misma sintaxis que Matlab. Además, sus clases de matriz pueden manejar n dimensiones y gran cantidad de subcapas, lo cual también fue importante para nosotros. Encontrará un buen código de muestra here.
En mi opinión, el único inconveniente: falta de funciones especializadas para la ingeniería y solo estadísticas básicas implmentadas. Por lo tanto, es muy conveniente construir su propio algoritmo (usando std, cov, var, mean, abs, etc.) y luego desempaquetar cualquier indicador de HILO-whatever fuera de la caja.
Lo comprobaré. ¡Gracias! – TJB
- 1. ¿Matemáticas requeridas para Finanzas computacionales?
- 2. DSL en Finanzas
- 3. Finanzas cuantitativas/biblioteca matemática para Java
- 4. ¿El mejor lenguaje de programación para la enseñanza de econometría?
- 5. Cómo convertir objetos NSNumber con fines computacionales?
- 6. ¿Alguna buena API de finanzas?
- 7. Yahoo! API de finanzas DOW
- 8. ¿Cuáles son sus paquetes de Python "imprescindibles" para las finanzas?
- 9. implementación Java del indicador estocástico para las finanzas
- 10. Makefile para CUDA y C
- 11. C++ y GUIs para enseñar
- 12. Herramientas de optimización para C y C++
- 13. ¿Libro para principiantes para .NET y C#?
- 14. Combinando C++ y C#
- 15. Administrado C++ para formar un puente entre C# y C++
- 16. C# y C++ Library
- 17. C# y Visual C#?
- 18. ¿Hay herramientas para integrar Java y C++?
- 19. Programación en C++ para clusters y HPC
- 20. ANTLR para C# y atributo CLSCompliant
- 21. Biblioteca C# para SSH y Telnet
- 22. para y while loop en C#
- 23. Biblioteca Objective-C para amanecer y atardecer?
- 24. Nunidad y código de cobertura para C#
- 25. C++ puro para Android y su rendimiento
- 26. Awesome ASP.NET y C# tutoriales para principiantes
- 27. C++ y destructor llamada de función para
- 28. Métricas y advertencias de código para C++
- 29. diferencias IL generado para VB.NET y C#
- 30. panel C# para dibujar gráficos y desplazarse
¡Interesante! ¿Eres capaz de recomendar sus características de matriz? Tenemos una gran cantidad de matriz de matriz y 3-D de manipulación en bucles apretados. Estuve probando su biblioteca hace años y en este momento la memoria estaba explotando y las características de la matriz realmente no existían. Me pregunto si esta situación ha mejorado desde entonces. – user492238
@James: gracias por su aporte. Creo que lo intentaré y veré cómo me gusta. Es bueno saber que está funcionando bien para ti. Suena muy prometedor – TJB
No debe esperar ninguna caída en el rendimiento del tiempo de ejecución. Nuestro producto usa la biblioteca Math Kernel de Intel, como dice James, y también lo hacen nuestros competidores. El tiempo de ejecución está en gran parte dentro de MKL para cualquier cálculo significativo. La función de regresión lineal termina haciendo descomposiciones usando LAPACK (MKL). –