Usar processamento 8 Nucleos

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Usar processamento 8 Nucleos

Mensagem por fladimir »

Hoje um técnico comentou q as maquinas estao com mais de 1 nucleo mas ao executar o sistema o mesmo só usa 1 nucleo... resumindo como fazer os nossos sistemas utilizarem mais de 1 nucleo do processador?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

Multithread eu uso faz tempo, mas não sei dizer se isso já serve pra dividir pelos núcleos.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

Na prática, nem se trata de usar todos os núcleos, mas sim porque usar.

Aqui fazendo um backup do MySQL, aparentemente, usando todos os núcleos.
backupini.png
E quando terminou, mal usa um núcleo, apesar de várias threads.
backupfim.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

O difícil é arrumar algum processo demorado.
Abri dois módulos de relatório, pedi os dois relatórios ao mesmo tempo.

O menu do meu aplicativo abre cada opção em thread diferente e janela diferente.
Pelo jeito, uso todos os núcleos quando precisa.

E foi sem querer isso.
Só fiz assim porque ficava mais fácil pra usar GTWVG.... rs
relatorio.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

Eu já comentei por aqui.
O interessante do meu aplicativo não é o que se vê, é o que não se vê.
E essa... nem eu tinha visto... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Usar processamento 8 Nucleos

Mensagem por fladimir »

Legal José... vou fazer uns testes aki e monitorar via Monitor de Recursos
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Usar processamento 8 Nucleos

Mensagem por fladimir »

Testei aki e alguns nucleos são utilizados outros não, mas pesquisando isso não é do aplicativo e sim do Windows e te um aplicatiov chamado UnPark q libera todos os nucleos deixando mais rapida a execução, uns falam q isso diminui a vida util do processador etc... as discussões são as mais variadas, não quis desbloquear os meus por enquanto pq a velocidade considero boa, mas fica a informação.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

Eu vejo por dois pontos:

- é de se imaginar que quanto mais usar, mais esquenta o processador
- Se não fosse pra usar mais de um núcleo, não precisariam existir

Se você olhar qualquer aplicativo Windows, é normal usarem multithread.
Alguns chegam a abrir mais de 100 threads, só olhar no gerenciador de tarefas/monitor de recursos.

No backup MySql eu nem uso multithread, mas o ADO usa.

No restante, trata-se apenas de abrir um módulo em cada thread, vai do usuário usar vários módulos ou não.
E o consumo de recurso é relacionado a processamento, não a thread estar aberta.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Usar processamento 8 Nucleos

Mensagem por rubens »

Fladimir

Não sei se é relativo...
Mas me lembro de uns tópicos aqui no Fórum falando sobre isso...
E falaram que tinha que incluir
-jobs=%NUMBER_OF_PROCESSORS%
No bat de compilação..
Coloquei não posso falar se melhorou ou não porque não fiz testes, mas não atrapalhou tá lá...
Também não tenho certeza se isso é para compilação ou para execução... já que está pesquisando sobre, não custa nada dar uma olhadinha...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Usar processamento 8 Nucleos

Mensagem por fladimir »

Oi Rubens... sim essa dica é top, mas se refere a compilação, fiz aqui tb na época e ficou show de bola, mas agora a questão a q me refiro é de execução.

Pelo q pesquisei tem q liberar no Windows então fica inviável, vou fazer testes se liberando fica o bico se sim é possível fazer via alteração de registro.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

A coisa no Windows 10 fica estranha, quando há aplicativos fora de uso usando muitas threads.
Mas como dá pra ver, usar muitas threads é normal.

sway.exe é uma espécie de power point pra fotos, que usei uma vez, há vários dias, e continua na lista do gerenciador de tarefas.
Nem dá pra entender isso.
thread.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Usar processamento 8 Nucleos

Mensagem por fladimir »

Quintas, mesmo usando muitas threads as vezes não usa todos os processadores, foi o q constatei aki mesmo com outros sistemas sendo analisados, é a isso q me refiro,

Já descobri como fazer todos os núcleos trabalharem e não ficarem ociosos, mas não testei ainda se realmente vai funcionar, se funcionar da pra fazer via alteração de registro, ai podemos colocar isso em nossos sistemas. Agora a nível de prós e contras o contra "hipotético" digamos assim, é q em alguns fóruns falam q este tipo de procedimento pode diminuir a vida útil do processador, mas tb falam q nada q irá nos afetar pq ainda assim seria muito tempo...

Resumindo vou fazer o seguinte...
  • Proceder com a liberação do uso sempre de todos os núcleos...
    Ver como se comporta o micro e os aplicativos
    Ver como se comporta minha aplicação
    Deu desempenho significativo e não teve contratempos, então compensa, vemos pra jogar via alteração de registro
    repito os testes desativando manual e testando se a aplicação fará as alterações a nível de registro
    Independente do resultado passo pra galera...
    Até lá sé alguém tiver já algo a contribuir com esse "teste laboratorial" digamos assim, toda ajuda é bem vinda.
    Talvez até mesmo alguém já tenha passado pela experiência.
[]ś
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Usar processamento 8 Nucleos

Mensagem por fladimir »

Leiam este artigo

Nele diz q quem solicita a utilização de mais núcleos é o software, ou seja, o Windows gerencia e pode acionar mais núcleos, caso a aplicação não solicite, e para tirar esse gerenciamento e todos os softwares trabalharem com mais núcleos é conforme mencionei, anteriormente via liberação no registro/programinha q faz isso, porém os contras disto é vida útil do processador etc.

Fora isto, conforme artigo, é possível q as aplicações solicitem a utilização de mais núcleos para trabalhar, porém segundo o autor da matéria, teria q ser programado algo a mais... enfim, acho q a matéria tem todo sentido, pq uma simples comprovação disso no nosso dia a dia, é o fato q se passamos um parametro na compilação para usar X núcleos a compilação ocorre mais rapidamente, mas desconheço algum comando/função em nossa linguagem para termos esse comportamento.

Resumo da opera no meu ponto de vista (gostaria da opinião dos senhores)... temos micros com vários núcleos mas de fato em nossos sistemas não solicitamos a utilização dos núcleos extras, consequentemente nossos sistemas, apesar de rápidos etc, poderiam ser mais rápidos se soubessemos fazer igual o HBMK2 faz qdo solicita mais núcleos ao compilar (VIDE TOPICO A RESPEITO)
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Usar processamento 8 Nucleos

Mensagem por Jairo Maia »

Olá Pessoal,

Usando o msconfig, na aba: número de processadores (no windows 8 e acima parece que tem a opção da aba BOOT), será possível saber quantos núcleos tem cada processador. Se a opção estiver desmarcada, quem gerencia é o SO, se alterar e salvar, por essa mesma opção não pode reverter, melhor criar um ponto de restauração para o caso de desejar voltar ao padrão.

Para saber quantos núcleos tem o processador, marque a opção e veja quantos núcleos ele permite habilitar. Para sair sem salvar basta clicar em cancelar.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Usar processamento 8 Nucleos

Mensagem por marcosgambeta »

Para ficar mais fácil, é preciso ter uma noção correta de cada termo:

. multithread
. multitasking
. multicore

Este artigo, por exemplo, fala sobre o assunto:

Diferenças entre Multithreading e Multitasking para programadores
http://www.ni.com/white-paper/6424/pt/
Atenciosamente,
Marcos Antonio Gambeta
Responder