Los tiempos de ejecución más rápidos hasta la fecha con la herramienta de diferenciación automática dco/c++ de NAG
- Detalles
- Categoría: NAG
- Visto: 3065
La diferenciación automática adjunta (AAD) es una técnica informática para calcular derivadas. Usada correctamente, AAD calcula las derivadas mucho más rápido y con mucha más precisión que los métodos alternativos.
NAG continúa innovando en el área de diferenciación automática a través de su colaboración con científicos informáticos líderes del RWTH Aachen y más allá con la última actualización de su producto de vanguardia. NAG proporciona una biblioteca de encabezados de C++ AD rica en funciones, completa y potente, que incluye Adjoint AD, denominada dco/c++, que ha abordado las necesidades de los clientes durante más de una década.
La herramienta de diferenciación automática dco/c++ de NAG ahora incluye:
Generación de código
¿Qué es?
Una tecnología híbrida que combina la eficiencia de transformación de fuente con la flexibilidad y facilidad de uso de una herramienta de sobrecarga de operadores, con soporte para código primario, tangente y adjunto.
Esto significa que nuestra última tecnología AD admite todas las combinaciones de modos escalares y vectoriales para calcular derivadas primeras y superiores y lo hace de manera más eficiente que nunca.
¿Qué quiere decir esto?
En última instancia, esto significa derivadas de primer orden y de mayor orden entre 2 a 10 veces más rápidas (ver figura, tomada del póster técnico "Faster Risk Calculation: Next Generation dco/c++") que con nuestras versiones anteriores y hasta 36000 veces más rápidos que los métodos alternativos. ¿Pero cómo?
Las técnicas de sobrecarga de operadores para C++ han demostrado ser exitosas, robustas y fáciles de utilizar. Esto se debe a que se basan en el estándar C++ y funcionan con todo el conjunto de funciones del lenguaje. El compilador de C++ garantiza la aplicabilidad y el mantenimiento a largo plazo.
La transformación de fuente es una forma excelente de generar códigos de derivadas extremadamente eficientes. ¿Por qué? Las herramientas de transformación de origen tienen dos ventajas: en el paso de transformación y en el paso de compilación. En el paso de transformación, pueden implementar optimizaciones basadas en las propiedades de las reglas de diferenciación subyacentes. Además, en el paso de compilación, los pases de optimización integrados de los compiladores que avanzan constantemente se heredan. Un gran éxito por lo general: En aplicabilidad y mantenibilidad.
Hemos combinado ambos enfoques en nuestra nueva generación de código dinámico: usamos técnicas de sobrecarga para generar una representación del programa en la memoria y analizamos los distintos modos (principal, tangente, adjunto) en un archivo C++. La naturaleza dinámica de este enfoque (construir la representación en tiempo de ejecución) introduce una restricción importante en el código que se va a diferenciar: no se permite que el flujo de control dependa de los datos de entrada. Superamos esta restricción para las ramas con un uso inteligente de las funciones modernas de C++, como las expresiones lambda, en combinación con elementos clásicos del preprocesador. Con eso, nuestro enfoque avanzado ha hecho que la transformación de origen sea más accesible que nunca.
Los usuarios se beneficiarán del nuevo método que brinda robustez y eficiencia computacional, lo que a su vez puede significar un gran ahorro de tiempo y costos computacionales.
NAG continúa brindando a sus clientes los métodos algorítmicos más avanzados y efectivos, con un soporte inigualable. dco/c++ ahora proporciona derivadas precisos para la optimización, el riesgo y muchos otros problemas de mediana a gran escala en casi cualquier campo, incluidas las finanzas, los deportes de motor, la industria aeroespacial, la biomédica, la marina y la ingeniería civil.
Esta solución ofrece la velocidad y la precisión necesarias en problemas complejos para una toma de decisiones más rápida, auspiciosa y segura. Con la experiencia y el soporte de NAG, obtiene el máximo valor de dco/c++, en el menor tiempo posible.
Estas actualizaciones son el resultado de más de 12 años de investigación y desarrollo, y todas nuestras soluciones se prueban rigurosamente, cuentan con el respaldo de expertos y están respaldadas por más de 50 años de experiencia.