Mais uma vez, sobre multithreading - página 9

 
Maxim Romanov:
No testador, tudo vai em 1 fio, mas na vida real sim, funciona.

e os benefícios são patentes ou estão à volta da margem de erro?

 
Igor Zakharov:

e os benefícios são patentes ou estão à volta da margem de erro?

Se os indicadores forem difíceis, há uma vantagem. Num testador, sim, não vale a pena.
 

Planeamos adicionar ThreadXXX e trocar funções para executar tarefas individuais.

Estes não são tópicos do programa principal, mas scripts separados (com manipuladores OnStart) que funcionarão independentemente num modo oculto semelhante ao dos serviços.

Será capaz de consultar e gerir listas de programas. Ao iniciar um "tópico", o seu ficheiro ex5 será especificado a partir de um ficheiro em disco ou do seu próprio recurso. Desta forma, é possível ter um único ficheiro ex5 que pode facilmente correr vários fios a partir dos seus recursos e trocar dados com eles.

Os fios não funcionarão no testador.
 
Renat Fatkhullin:

Planeamos adicionar ThreadXXX e trocar funções para executar tarefas individuais.

Estes não são tópicos do programa principal, mas scripts separados (com manipuladores OnStart) que funcionarão independentemente em modo oculto semelhante ao dos serviços.

Será possível consultar e gerir listas de programas. Quando um "tópico" é iniciado, o seu ex5 ficheiro será especificado a partir de um ficheiro em disco ou do seu próprio recurso. Assim, será possível ter um único ficheiro ex5, que a partir dos seus recursos lança facilmente vários fios e troca dados com eles.

Os fios não correrão no testador.

Esta é uma boa notícia :) .

 
dd:
Não ofereci um único bom conselho sobre os termos do problema. Boa noite também para si...

Era, mas não é um leitor, é um escritor.


dd:
minha querida querida, raio de sol, leste o problema ? está claramente descrito ali - num loop, muitas outras tarefas têm de ser feitas num segundo, por exemplo, fechar 500 000 encomendas ou não fechar - verificar ... 0,1 lote, 50 000 depósito, é bom com matemática? E sim, é sintético. Mas os seus conselhos são inúteis.

Zajinka, descobre o teu código de merda, e tudo irá voar!

Ou, se a tarefa tiver sido tão mal formulada e precisar realmente de acelerar um único teste, nada mais será feito senão o OpenCL. Mas isto é um disparate, muito provavelmente a abordagem foi errada logo desde o início. Mas não vale a pena adivinhar sem o código ou uma descrição mais detalhada.

Para acelerar os testes, pode ler os posts por fxsaber, ele tem lidado extensivamente com este problema. Pode usar o Virtual ou cortar as carraças. Mas, mais uma vez, o problema está muito provavelmente na declaração inicial do problema ou em código subaproveitado.

 

para fechar 500.000 encomendas por segundo e contar um passe durante 5 dias. Sim.

Perdoe-me os administradores, mas se quiser utilizar o HFT, tem de pagar ~$20K por uma licença de software especial HFT.

Ou $100+k - eles escrevem-na bem para si.

 
Aleksey Mavrin:

para fechar 500.000 encomendas por segundo e contar um passe durante 5 dias. Sim.

Perdoe-me os administradores, mas se quiser utilizar o HFT, tem de pagar ~$20K por uma licença de software especial HFT.

Ou 100+k$ - eles escrevem-no por si.

Suspeito que as pessoas que estão interessadas em HFT pelo menos comprem de uma vez uma licença de servidor.

O terminal é uma entidade supérflua quando se fala de fracções de segundos

 

Não sei como os fios estão dispostos, mas o MT5 utiliza apenas um núcleo processador, se o núcleo processador for carregado ao máximo, o terminal avaria.

Não se deve fazer um paralelismo de fios, mas sim de tarefas paralelas a outros processadores (núcleos).

 
Sergey Chalyshev:

Não sei como são configurados os fios, mas o MT5 só utiliza um núcleo de CPU, se o núcleo de CPU for carregado ao máximo - o terminal avaria.

Não o faz.

Apenas os indicadores para uma ferramenta funcionam numa só linha e "falha" se forem pesados e um núcleo não conseguir lidar com eles.


Sergey Chalyshev:

Não se deve fazer o paralelismo dos fios mas sim das tarefas paralelas com outros processadores (núcleos).

Isto é o que o Windows faz.

 
Andrey Khatimlianskii:

Não é este o caso.

Apenas os indicadores funcionam com um fio por ferramenta, e "colidem" se forem pesados e um núcleo não conseguir aguentar.


Isto é o que o Windows faz.

O Windows não tem nada a ver com isto, sei que quase qualquer tarefa pode ser paralela a todos os núcleos