Procesamiento paralelo 1TP6 para el entrenamiento y la generación genética
10 respuestas
kainc301
hace 4 años #247191
Hola a todos. Por lo que tengo entendido, el equipo de SQ ha hecho muchas mejoras de velocidad para SQX, incluyendo computación paralela para Monte Carlo y simulaciones WFO.
Sin embargo, ¿es posible utilizar la computación paralela para el entrenamiento genético y la generación aleatoria? Supongo que este proceso sería mucho más rápido en CPUs con un mayor número de núcleos.
Además, he visto que la aceleración de la GPU para los cálculos está en la lista de tareas pendientes. Pero por lo que tengo entendido, la única manera de que la GPU ayude con la velocidad de construcción de las estrategias es si la construcción y el entrenamiento se hicieran con procesamiento paralelo. Quiero invertir en GPUs premium para utilizar con mi máquina para SQX cuando esta característica esté disponible, sin embargo, quería asegurarme de que realmente mejoraría la velocidad de construcción y formación de estrategias.
He visto que la aceleración en la GPU mejora la velocidad de entrenamiento de los modelos de aprendizaje automático en órdenes de magnitud. ¿Podría aplicarse lo mismo a SQX? Tengo curiosidad por conocer la opinión de Mark o del equipo de desarrollo. Sería realmente impresionante conseguir las mejoras de velocidad de 10-100x que se han observado con diferentes modelos utilizando configuraciones multi-GPU 🙂 .
bentra
hace 4 años #247208
De wiki: La computación paralela es un tipo de computación en la que muchos cálculos o la ejecución de procesos se llevan a cabo simultáneamente. Esto técnicamente ya ocurre desde SQ3 y quizás antes. (De otro modo no podríamos utilizar más de un núcleo a la vez).
También espero con impaciencia la compatibilidad con GPU, que debería ser mucho más rápida, pero puede que lleve mucho trabajo...
De este documento: https://pdfs.semanticscholar.org/8fa2/9a317120add5525e61f41f73c5a96e932d60.pdf
Programar en la GPGPU es escribir masivamente programas paralelos para su ejecución en ordenadores personales.
Gianfranco
hace 4 años #247214
como cuda cores nvidia
Conozco algún software optimizado con librerías nvidia cuda que aprovechan los cuda cores de las tarjetas nvidia gpu.... o tesla para cálculo paralelo... pero creo que es un gran trabajo escribir sqx optimizado con librerías Cuda
kainc301
hace 4 años #247226
Esto técnicamente ya ocurre desde SQ3 y quizás antes. (De lo contrario, no podríamos utilizar más de un núcleo a la vez).
Pensé que sólo WFO y Monte Carlo se aprovecharon de esto, pero no tengo ni idea de cómo se maneja el funcionamiento interno de SQX por lo que era sólo una suposición.
Conozco algún software optimizado con librerías nvidia cuda que aprovechan los cuda cores de las tarjetas nvidia gpu.... o tesla para cálculo paralelo... pero creo que es un gran trabajo escribir sqx optimizado con librerías Cuda
Si sólo pudiera tener un regalo de Navidad, sería este lol
clonex / Ivan Hudec
hace 4 años #247241
se escribió aquí muchas veces cómo funciona sqx por qué no es posible utilizar la GPU, etc sólo tiene que utilizar la función de búsqueda
kainc301
hace 4 años #247243
se escribió aquí muchas veces cómo funciona sqx por qué no es posible utilizar la GPU, etc sólo tiene que utilizar la función de búsqueda
Mark añadió las capacidades de GPU a la lista de hitos pendientes de SQX: https://roadmap.strategyquant.com/tasks/sq4_2985
He leído a lo que se refería, pero después de que se presentara esta tarea y de que se debatiera cómo podría llevarse a cabo, supuse que este sentimiento había cambiado.
kainc301
hace 4 años #247246
He investigado mucho en los foros de SQ y en otros lugares para entender los cuellos de botella actuales de la computación GPU cuando se trata de backtesting. Cuando Mark habló de esto en el pasado, la cuestión tenía que ver con el uso de GPU para computación de propósito general, ya que el backtesting era más complejo que las operaciones matemáticas. Una opinión similar se describe en este resumen académico: https://pdfs.semanticscholar.org/d087/f5cb4a92f98aaef5008ceb682954f7ffbee2.pdf
Sin embargo, parece que dos investigadores han sido capaces de utilizar eficazmente las GPU con algoritmos genéticos en los mercados de divisas. Recomiendo encarecidamente estudiar y, potencialmente, aplicar este enfoque. El enlace completo a su investigación académica está aquí: http://people.scs.carleton.ca/~dmckenne/5704/Paper/Final_Paper.pdf
También descubrí que NVIDIA era capaz de utilizar GPUs para backtesting de mercados financieros y alcanzar una velocidad 6000x https://www.nvidia.com/content/dam/en-zz/Solutions/industries/finance/finance-trading-executive-briefing-hr-web.pdf.
Cómo lo hicieron es desconocido, así que voy a seguir buscando, pero, parece que hay una manera de incorporar la lógica CUDA que es capaz de hacer el tipo de backtesting que antes se consideraba casi imposible de hacer. Así que creo que todavía hay esperanza de que esto se implemente en SQX algún día. Si se ha hecho antes, no lo considero "imposible". Los investigadores que incorporaron GPU a su algoritmo genético también utilizaron CUDA para lograr sus resultados.
Mark Fric
hace 4 años #247279
Lo he consultado repetidamente con mis amigos de la universidad que trabajan con GPU y, por desgracia, la situación no ha cambiado: las GPU no son adecuadas para nosotros.
Es posible ejecutar la evolución genética también "algún tipo" de backtesting en la GPU. El problema es la naturaleza abierta de SQ que queremos lograr.
Podríamos hacer una arquitectura de estrategia fija y un conjunto fijo de indicadores que se probarían en la GPU, pero entonces no podríamos utilizar cosas como plantillas de estrategia, programación de indicadores personalizados y otros bloques, que son todos puntos fuertes de SQ X.
Esta centuplicación de la velocidad que mencionan en los artículos sólo es posible en determinadas condiciones y con determinados programas, todavía no es posible acelerar así el proceso general de backtesting.
Mark
Arquitecto de StrategyQuant
kainc301
hace 4 años #247291
He consultado esto repetidamente con mis amigos PHD de la universidad que trabajan con GPUs, y desafortunadamente el estatus no ha cambiado - las GPUs no son adecuadas para nosotros. Es posible ejecutar la evolución genética también "algún tipo" de backtesting en la GPU. El problema es la naturaleza abierta de SQ que queremos lograr. Podríamos hacer una arquitectura de estrategia fija y un conjunto fijo de indicadores que se probarían en la GPU, pero entonces no seríamos capaces de utilizar cosas como plantillas de estrategia, programación de indicadores personalizados y otros bloques, que son todos los puntos fuertes de SQ X. Esta aceleración de cien veces que mencionan en los documentos es posible sólo bajo ciertas condiciones y con ciertos programas, todavía no es posible acelerar el proceso de backtesting general de esta manera.
Es una lástima. Estoy de acuerdo en que es mucho más importante mantener la flexibilidad en el uso de indicadores / plantillas personalizadas que sacrificar eso por el rendimiento.
Así que la verdadera solución en la búsqueda de un mayor rendimiento a través de hardware es mediante el uso de múltiples CPUs conectadas a través de un sistema de red. Al menos puedo ahorrar dinero en GPUs caras jaja.
gusyoan
hace 4 años #254839
Mark Fric
hace 4 años #257552
no, este tipo de cartas no se pueden utilizar. Pero no entiendo la obsesión por la mayor potencia posible - no es la clave para el comercio rentable.
Mark
Arquitecto de StrategyQuant
Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)