OpenCl e i relativi strumenti. Recensioni e impressioni. - pagina 7

 
icas:
"Proprio così, proprio così, vero? Ma c'è un'altra faccia della medaglia" ("Captive of the Caucasus", C). Le meta-citazioni sono finalmente "al passo con i tempi".

Hanno deciso di continuare con il ferro per qualche motivo? E il ferro invecchia più velocemente.


Gli eroi normali fanno sempre il contrario (c) È una canzone di qualche film.


Personalmente non sono minimamente ispirato dal fatto che per ottenere la velocità con l'ottimizzazione a livello di MT4, dovrò cercare qualche tipo di scheda video. E l'ottimizzazione è la parte più problematica dell'autotrading in termini di costo computazionale.

Inoltre, se domani i ferraioli inventeranno qualche altra caratteristica che darà loro una soluzione più accettabile degli stessi problemi, sarà un peccato per le meta-citazioni. Dopo tutto, gli sviluppatori di hardware sono i meno conservatori nelle loro idee e alla prima occasione cercheranno di implementare qualcosa in modo da abbandonare le vecchie stampelle e andare avanti rispetto alla concorrenza.

Il modo più efficace per aumentare la produttività del software è migliorare il suo algoritmo. Tutti gli altri tentativi di deviare da questo percorso, e specialmente quelli che dipendono da altri sviluppatori, spesso finiscono molto miseramente.

 
Reshetov:

Personalmente non sono affatto ispirato dal fatto di dover cercare alcuni widget per ottenere la velocità di ottimizzazione a livello di MT4. E l'ottimizzazione è la parte più problematica dell'autotrading in termini di costo computazionale.

Inoltre, se domani i ferratori penseranno a qualche altra caratteristica che darà loro una soluzione più accettabile per gli stessi compiti, sarà un peccato per le meta-citazioni. Dopo tutto, gli sviluppatori di hardware sono i meno conservatori nelle loro idee e alla prima occasione cercheranno di implementare qualcosa di speciale per abbandonare le vecchie stampelle e andare avanti rispetto alla concorrenza.

Il modo più efficace per migliorare le prestazioni del software è migliorare il suo algoritmo. Tutti gli altri tentativi di deviare da questo percorso, e specialmente quelli che dipendono da altri sviluppatori, finiscono spesso molto male.


Prova MQL5 Cloud Network - la velocità di ottimizzazione è alta come mai visto prima in MT4. Nei calcoli di massa, sarà sorprendente come centinaia di risultati al secondo falliscano quando si usano un paio di migliaia di agenti indipendenti.

Non sono sicuro che il GPU Computing porterà un aumento degli algoritmi di trading di base, ma abbiamo piani di vasta portata. Nelle prossime build ci saranno molte cose interessanti - sarà possibile costruire le più potenti fattorie di calcolo con scambio di dati e postanalisi dei risultati.

 
Renat:

Non sono sicuro che il GPU Computing darà un aumento degli algoritmi di trading di base, ma abbiamo piani di vasta portata. Le prossime costruzioni saranno molto interessanti - sarà possibile costruire le più potenti fattorie di calcolo con scambio di dati e postanalisi dei risultati.

Wow! Questo significa che l'utente avrà accesso ai risultati dei calcoli dell'agente?
 
joo:
Wow! Questo significa che l'utente avrà accesso ai risultati dei calcoli degli agenti?

Esattamente.

È possibile trasferire grandi quantità di dati dagli agenti al terminale host, e quando i calcoli sono completati, eseguire automaticamente il metodo OnTesterFinalize() dello stesso Expert Advisor sul terminale stesso. Così, sarà possibile eseguire una complessa post-elaborazione dei risultati dei test.

 
Renat:

Esattamente.

Sarà possibile trasferire grandi quantità di dati dagli agenti al terminale host, e quando i calcoli sono completati, eseguire automaticamente il metodo OnTesterFinalize() dello stesso Expert Advisor sul terminale stesso. Così, sarà possibile eseguire una complessa post-elaborazione dei risultati dei test.

Fico!!!

Inoltre, prima che sia troppo tardi. Il metodo OnTesterFinalize() per gli agenti sarebbe anche auspicabile (potrebbe essere lo stesso, ma con un parametro di input host/agente). L'idea è quella di creare array nei file di mappa (ad esempio indicatori pesanti per la cache) sulle macchine agente, e cancellarli correttamente alla fine.

 
Renat:

Prova MQL5 Cloud Network - la velocità di ottimizzazione è alta come mai visto prima in MT4. È sorprendente come centinaia di risultati al secondo usando un paio di migliaia di agenti indipendenti possano cadere su calcoli massicci.

Sì, l'ho già provato sul mio computer locale a 2 core. Sono rimasto deluso dai risultati. Il motore di MT5 può a malapena funzionare su 2 core mentre MT4 si sta ottimizzando molto velocemente.

Teoricamente, naturalmente, si possono lanciare ulteriori computer collegati alla rete locale e le prestazioni aumenteranno a causa di ciò. Puoi avere più schede video installate nel tuo computer, il che aumenterebbe le prestazioni. Ma non è la soluzione quando si deve comprare un rack di server per aumentare la velocità di ottimizzazione nel tester.

Naturalmente, si può anche usare il calcolo distribuito a distanza, anche se il servizio non è gratuito.

Ma il punto è che la produttività di MT4 è ora sufficiente per me. E dato che MT5 diventa sempre più dipendente dall'hardware, non voglio migrare verso una tale piattaforma.


Renat:

Non sono sicuro che il GPU Computing darà un aumento degli algoritmi di trading di base, ma abbiamo piani di vasta portata.

Per metterlo in prospettiva, il GPU Computing per qualsiasi cosa che non sia un gioco per computer non è molto utile finora. Qui la storia è molto diversa. Vale a dire, c'è un paradosso che la grafica 3D, cioè le immagini e l'animazione è creata (resa) sui processori dei computer principali. Da un lato sembrerebbe produrre schede grafiche con potenti processori per la grafica con memoria ad alta velocità, ma d'altra parte, tutti coloro che hanno a che fare con il 3D, non comprare grafica di fantasia, e acquistare processori multi-core e convenzionale, ma ad alta velocità RAM, a volte combinando tutta questa roba in fattorie e render. Meglio ancora, i risultati del rendering possono essere visti anche su una scheda grafica abbastanza economica (c'è un grande ruolo giocato dalla qualità dell'immagine sul monitor).

È chiaro che i produttori di schede video non sono contenti di questa situazione, perché i profitti stanno scorrendo, quindi, da parte loro, stanno facendo dei tentativi per controllare la situazione sotto di loro. Ma finora senza successo. Cioè software per il rendering per alcune linee di schede video è apparso, ma se calcolare, si scopre che il rapporto qualità / prezzo non è a favore della GPU. L'agenzia pubblicitaria o lo stampatore vuole aspettare il rendering dell'immagine 3D su un solito multi-core o in azienda, ma con la massima qualità, piuttosto che arrivare velocemente sulla GPU e poi cercare di risolvere i bug. I renderizzatori non hanno fretta di passare alla GPU, perché in questo caso, il loro software diventerebbe dipendente dai produttori di videocard, ed essere legati a un particolare hardware non farebbe che scoraggiare i clienti.

Se MetaQuotes era impegnata nello sviluppo di fattorie per la grafica 3D, allora questo passo sarebbe stato comprensibile. Ma IMHO, è una perdita di tempo, perché sarebbe meglio aspettare che i produttori di schede grafiche abbiano calibrato i loro prodotti, piuttosto che spingere troppo in là le cose.

Anche se non spetta a me decidere, visto che sono il capo. Ma il punto rimane, cioè non c'è il desiderio di passare a un software dipendente dall'hardware e non apparirà presto.

 
Reshetov:

Sì, l'ho già provato, su un computer locale a 2 core. I risultati sono deludenti. L'ho provato su MT5, mentre MT4 mostra un'ottimizzazione molto veloce.

Avete provato MQL5 Cloud Network con 2000 agenti su un dual core?

O avete fatto un solo passaggio locale e vi siete riposati su quello?

È con il MQL5 Cloud Network che abbiamo raggiunto una semplice accelerazione di centinaia e migliaia di volte. Senza GPU, su qualsiasi Expert Advisor. Prendete il mio vecchio esempio con il video: Esempio di accelerazione di calcolo usando MQL5 Cloud Network


Teoricamente, naturalmente, è possibile eseguire ulteriori computer sulla rete locale e le prestazioni aumenteranno a causa di ciò. È anche possibile avere più schede video collegate e le prestazioni aumenterebbero. Ma questa non è la soluzione, quando per aumentare la velocità di ottimizzazione nel tester, sarà necessario acquistare un rack di server.

Naturalmente, si può anche usare il calcolo distribuito a distanza, anche se il servizio non è gratuito.

Abbiamo reso possibile sollevare istantaneamente migliaia di agenti con un solo pulsante (tempo di riscaldamento della rete circa 20-30 secondi) per il calcolo rapido dei compiti. Invece di centinaia di ore, puoi davvero farlo in mezz'ora.

Inoltre, i prezzi sono ridicoli - chiunque può controllarli, e chiunque si iscriva a MQL5.com riceve un bonus di 2 dollari.

Questa è una vera rivoluzione. Ora qualsiasi utente può mettere in crisi quasi tutti i supercomputer attraverso l'uso dei cludi. E con l'introduzione della GPU (una build sarà disponibile venerdì) sarà possibile battere i supercomputer a pacchi.


Ma il nocciolo della questione è che per ora la produttività di MT4 è abbastanza per me. E poiché MT5 diventa sempre più dipendente dall'hardware, non voglio migrare a questa piattaforma.

La produttività è sufficiente (o piuttosto ci si assicura di questo) per i casi semplici. Per calcoli massicci e dettagliati non c'è abbastanza potenza.

L'errore nel paragonare i tester di MT4 con quelli di MT5 è che la gente chiude un occhio sul livello molto diverso di dettaglio e sulla capacità di testare accuratamente le multivalute.

Hai mancato il bersaglio anche sulla dipendenza dall'hardware:

  • MT5 supporta entrambe le architetture a 32 e 64 bit (la versione a 64 bit è effettivamente più veloce e più potente)
  • MT5 usa tutti i core locali
  • MT5 utilizza agenti remoti (32 e 64 bit)
  • MT5 utilizza il MQL5 Cloud Network quando un semplice notebook riceve risultati di calcolo da computer diverse migliaia di volte più potenti di lui
  • MT5 utilizza OpenCL indipendente dall'hardware, che permette di lavorare con una varietà di processori GPU

Lei è palesemente velleitario, chiaramente consapevole di avere torto.


È chiaro che gli sviluppatori di videogiochi non sono soddisfatti di questa situazione mentre i profitti scorrono, quindi fanno dei tentativi per prendere la situazione sotto il loro controllo. Ma finora senza successo. Cioè software per il rendering per alcune linee di schede video è apparso, ma se calcolare, si scopre che il rapporto qualità / prezzo non è a favore della GPU. L'agenzia pubblicitaria o lo stampatore vuole aspettare il rendering dell'immagine 3D su un solito multi-core o in azienda, ma con la massima qualità, piuttosto che arrivare velocemente sulla GPU e poi cercare di risolvere i bug. I renderizzatori non hanno fretta di passare alla GPU, perché in questo caso, il loro software diventerà dipendente dai produttori di videocard, ed essere legati a un particolare hardware non farà che scoraggiare i clienti.

Anche se non sono un sostenitore della GPU (sono stato apertamente anti-GPU per molto tempo), le tue conclusioni sono sbagliate.

Non c'è nessun software per GPU, perché gli sviluppatori non hanno ancora creduto in questa direzione, ma non ribadendo il mitico legame a un hardware specifico. Per amor di decenza, si dovrebbe almeno leggere cos'è OpenCL e per cosa è stato inventato (indipendente dall'hardware e dalla piattaforma).

Le aziende sono costrette a usare il rendering del software solo a causa dell'inerzia e dei processi stabiliti. Far cambiare software a un'azienda è uno sforzo titanico, spesso impossibile per i prossimi 3-5 anni. Dato il salto che le GPU hanno fatto negli ultimi 3 anni e l'enfasi chiaramente visibile dei loro autori sull'universalizzazione, è ragionevole non solo aspettarsi risultati migliori, ma anche perseguire attivamente nuove funzionalità.


Se MetaQuotes stesse sviluppando aziende per la grafica 3D, allora un tale passo sarebbe ancora comprensibile. E ora, IMHO, è solo una perdita di tempo, perché sarebbe meglio aspettare che i produttori di schede video abbiano sistemato tutto, piuttosto che spingere troppo in là le cose.

Anche se non spetta a me decidere, visto che sono il capo. Ma il punto rimane, cioè non c'è il desiderio di passare a un software dipendente dall'hardware e non apparirà presto.

Abbiamo aspettato abbastanza, abbiamo anche criticato e dissentito, ma è arrivato il momento.

E questa è la terza volta che la ripetizione sul "software dipendente dal ferro" ha luogo.

 
Reshetov:

Sì, ho già provato, su un computer locale a 2 core. I risultati sono deludenti. I risultati sono deludenti: riesco a malapena a farcela su MT5 usando 2 core, mentre MT4 si ottimizza velocemente.

Principalmente, a parità di condizioni, la velocità di test su MT5 è più lenta che su MT4 perché MT5 utilizza una migliore modellazione della storia dei tick. Riduce notevolmente la velocità. Ma, c'è una speranza che MQ implementerà metodi di generazione di tick più semplici (e varianti di test senza tick) come in MT4 (ci sono molte richieste del genere, e guardando le recenti innovazioni, c'è una speranza che venga implementato).

Reshetov:

Se voglio entrare nei dettagli, il GPU Computing non è molto utile per nulla se non per i giochi per computer. Qui la storia è molto diversa. Vale a dire, c'è un paradosso che la grafica 3D, cioè le immagini e l'animazione è creata (resa) sui processori dei computer principali. Da un lato sembrerebbe produrre schede grafiche con potenti processori per la grafica con memoria ad alta velocità, ma d'altra parte, tutti coloro che hanno a che fare con il 3D, non comprare grafica di fantasia, e acquistare processori multi-core e convenzionale, ma ad alta velocità RAM, a volte combinando tutta questa roba in fattorie e render. Meglio ancora, i risultati del rendering possono essere visti anche su una scheda grafica abbastanza economica (c'è un grande ruolo giocato dalla qualità dell'immagine sul monitor).

È chiaro che i produttori di schede video non sono contenti di questa situazione, perché i profitti scorrono, quindi, da parte loro, stanno cercando di vincere la situazione sotto di loro. Ma finora senza successo. Cioè software per il rendering per alcune linee di schede video è apparso, ma se calcolare, si scopre che il rapporto qualità / prezzo non è a favore della GPU. L'agenzia pubblicitaria o lo stampatore vuole aspettare il rendering dell'immagine 3D su un solito multi-core o in azienda, ma con la massima qualità, piuttosto che arrivare velocemente sulla GPU e poi cercare di risolvere i bug. I renderizzatori non hanno fretta di passare alla GPU, perché in questo caso, il loro software diventerebbe dipendente dai produttori di videocard, ed essere legati a un particolare hardware non farebbe che scoraggiare i clienti.

Se MetaQuotes stesse sviluppando aziende per la grafica 3D, allora questo passo sarebbe comprensibile. Ma IMHO, è una perdita di tempo, perché sarebbe meglio aspettare che i produttori di schede video abbiano sistemato tutto, piuttosto che spingere troppo in là le cose.

La situazione è quasi esattamente il contrario. Tutti quelli che pensano al futuro stanno passando al GPU Computing. Stanno costruendo interi supercomputer con dei videocomputer.

Le GPU al giorno d'oggi calcolano tutto, video, audio, foto e persino i calcoli di forza in dinamica e statica.

Informazioni non ufficiali:
Informazioni generali su CUDA
http://www.gpgpu.ru/
http://www.computerra.ru/interactive/423392/
http://cgm.computergraphics.ru/issues/issue16/cuda
http://www.ixbt.com/video3/cuda-1.shtml
http://www.ixbt.com/video3/cuda-2.shtml
http://www.thg.ru/graphic/nvidia_cuda_test/print.html
http://www.thg.ru/graphic/nvidia_cuda/print.html
https://ru.wikipedia.org/wiki/CUDA

Documentazione CUDA
http://www.uraldev.ru/articles/id/33
http://www.steps3d.narod.ru/tutorials/cuda-tutorial.html

Esempi e articoli su CUDA
http://www.codeproject.com/info/search.aspx?artkw=CUDA

Letteratura stampata:
http://www.ozon.ru/context/detail/id/5080841/
http://www.ozon.ru/context/detail/id/5432077/


Informazioni ufficiali:

Tecnologie correlate
http://www.khronos.org/opencl/

http://www.nvidia.ru/object/cuda_home_new_ru.html
http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_alp.php

http://developer.nvidia.com/object/gpucomputing.html
http://developer.nvidia.com/object/cuda_3_2_downloads.html
http://developer.nvidia.com/page/documentation.html
http://developer.nvidia.com/object/nsight-downloads.html

Esempi di codice CUDA

http://developer.download.nvidia.com/compute/cuda/sdk/website/samples.html

Applicazioni

http://www.nvidia.ru/object/cuda_research_ru.html

Demo dalla comunità

http://www.nvidia.ru/object/cuda_apps_flash_new_ru.html


Questi sono per lo più link a CUDA (tirati dalla scorta) ma tutto si applica ancora a OpenCL nella sua interezza. Inoltre, il futuro di OpenCL sembra più luminoso (tecnologia indipendente dall'hardware) di quello di CUDA (tecnologia dipendente dall'hardware).


Reshetov:
Anche se non spetta a me decidere, visto che il padrone è il capo. Ma l'essenza rimane, cioè il desiderio di passare a un software dipendente dall'hardware non appare e non apparirà presto.

Nessuno vi impedisce di scrivere programmi alla vecchia maniera, per la CPU. Tutti i programmi funzioneranno.


ZS Renat mi ha battuto sul tempo.

 

joo:

...

ZS Renat mi ha battuto sul tempo.

Doppio colpo. L'informazione non è mai superflua. :) Ramo molto informativo, dovrebbe anche essere fissato, in modo che non vada giù.
 
icas:
Renat, ci sarà il supporto OpenCL in MT4?

Purtroppo no.

Ma un grande aggiornamento di MetaTrader 4 uscirà la prossima settimana e la nuova MetaTrader 4 per iPhone/iPad uscirà questa settimana.

Motivazione: