2012-02-16 28 views
5

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

1

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!

+1

¡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

+0

@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

+0

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). –

10

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.

+2

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

+0

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. –

+0

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

3

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.

+1

Lo comprobaré. ¡Gracias! – TJB