Pergunta para os desenvolvedores - usando todos os núcleos computacionais durante a otimização - página 5
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O problema da distribuição uniforme das tarefas também está relacionado com a ordem na qual os agentes são ativados. Isto é especialmente óbvio quando se adicionam novos agentes, após a execução da otimização.
Minha esperança é que os EAs e seus arquivos acompanhantes sejam, no futuro brilhante, carregados uma vez em um computador remoto com agentes, o que economizará tempo e tornará a distribuição de recursos computacionais mais uniforme.
Pergunta aos desenvolvedores de MT: Quando haverá algum progresso? Por favor, me diga quando os erros catastróficos descritos acima serão corrigidos, por causa dos quais a otimização não funciona na verdade ....
Pergunta aos desenvolvedores de MT: Quando haverá algum progresso? Você poderia nos dizer o prazo para corrigir os erros catastróficos descritos acima que fazem com que a otimização realmente não funcione ....?
A que "erros catastróficos" você está se referindo?
Como é que a otimização não funciona?
> A que "erros catastróficos" você está se referindo?
>E como esta otimização não funciona
Tudo é descrito acima e não apenas por mim.
1. Os agentes de rede não funcionam, eles simplesmente não começam
2. Ao calcular um novo conjunto, leva muito tempo e pensa em algo.
3. Ele distribui pacotes de tarefas apenas para um e os mesmos núcleos quando há muitos outros núcleos livres
Resultado: a otimização dura 4 vezes mais do que antes ....
Ainda não há respostas para as perguntas acima
mas tudo parece estar funcionando bem após as atualizações, embora ainda haja alguns núcleos ociosos
a questão da distribuição inadequada dos empregos para os núcleos permanece:
1. Por que diferentes núcleos de agentes de rede recebem um número diferente de trabalhos e não cada núcleo recebe o mesmo trabalho
2. O que acontecerá se eu desativar um agente que tem 58 empregos em um determinado momento como na foto acima, eles ainda serão calculados ou serão esquecidos e nunca serão calculados?
Olá, tentando acelerar os testes usando a função TestorStop() no Opticket, parando os testes individuais se a EA atingir valores inaceitáveis. Como resultado, algumas corridas são mais rápidas que outras e um dos agentes termina primeiro (em algum lugar eu li que se um agente de teste estiver ocioso por algum tempo, ele é desligado) - quando todos os outros agentes terminam, as tarefas não são enviadas para o primeiro agente. E assim, os agentes de teste desistem um a um, até restar apenas um agente - neste caso, não podemos falar de velocidade. Isto é, a velocidade pode ser aumentada, mas os erros técnicos de implementação da computação distribuída não o permitem. Se eu executarTestorStop() no OnInit(), por exemplo, para otimizar 2 parâmetros, um dos quais deve ser maior que o outro, durante a primeira corrida a velocidade também aumenta, mas mais tarde os agentes de teste param de fazer tarefas, embora o contador de tarefas enviadas aumente com uma alta velocidade, enquanto o contador de tarefas resolvidas pelo agente permanece ocioso. Talvez alguém saiba como contornar isso - o tópico é interessante, a velocidade dos testes descartando resultados desnecessários em 10 vezes maior que os testes normais, além de zerar resultados desnecessários no OnTest() pode direcionar o algoritmo genético na direção certa para nós!
Desenvolvedores, resolvam o problema da distribuição de tarefas .... o princípio "um núcleo - um trabalho".
Tenho 10 núcleos de CPU principal contando agora desde que eles conseguiram mais de 40 trabalhos e outros 40 núcleos de rede ociosos desde que eles contaram todos eles ... você pode distribuir os trabalhos de forma uniforme.... é elementar e simples para programação
Desenvolvedores, resolvam o problema da distribuição de tarefas .... o princípio "um núcleo - um trabalho".
Tenho 10 núcleos de CPU principal contando como eles conseguem mais de 40 trabalhos e outros 40 núcleos de rede ociosos, pois eles contaram todos eles ... os empregos podem ser distribuídos uniformemente .... é elementar e simples para programação
Esta não é a abordagem correta - você não tem que dar trabalhos um a um, você tem que redistribuir a capacidade se houver recursos livres, ou seja, cancelar os trabalhos já dados e dá-los a outros para serem executados. Ao mesmo tempo, é necessário analisar o desempenho de cada agente a fim de dar ao núcleo o número certo de novos trabalhos para execução.