View Full Version : Cpu-burnout
O que deve ter um programa que tem como objectivo espremer todos os Mhz do processador?
Basta um ciclo interminavel com umas contecas no meio? ou é preciso algo mais.
Fiz um progzito destes no meu portatil, em c++, pu-lo a correr e quando fui ao taskmanager (OS-XPHome) a carga no processador era 100%.
Mas estará o task-manager correcto? poderei ainda por mais carga no processador? Que me aconselham a adicionar?
See ya...!
:003:
Boas.
O task manager está correcto,
pois o teu programa está a consumir a 100%
os recursos do sistema e do CPU.
Faz End Task ao teu programa e verifica a quanto fica o CPU.
Um abraço.
Andr0m3da
29-05-2002, 00:42
Tesla,
queres fazer um programa para carregar o cpu?
Ao fazeres um programa não estruturado com o intuito de usar todo o processador corres o risco de apenas estar a esforçar certas "zonas" do cpu, "apertar" com tudo é complicado.
Um programa que faça brute force a um file zipado por exemplo é normal que use e abuse das ALU's mas nada mais.
Podes confirmar o que te digo, procurando um programa chama AZPR, Advance Zip Passwaord Recovery. A mim isto aquece tanto o cpu qt o Toast, mas no entanto sei que não é um teste exaustivo a todo o cpu, bastas ver que apesar de estar a 100%, com o AZPr o pc fica utilizavel, e com o Toast tb fica, mas noto mais "arrasto", ou seja tem de haver forma de pores o rapaz mais esforçadito, agora o "como" é que nao sei.
Talvez alguem mais de Info te possa dizer. Gutter?
Onde posso arranjar info para integrar em C++ as instruções de multimedia suportadas pelo CPU!
O meu CPU é um Tbird 1200 @ 1400Mhz.
See ya
AVxAMD,
Depois de terminar o programa o task-manager passa para 0-2%!!
:003: :003: :009: :009:
Andr0m3da
30-05-2002, 17:26
Telsa, isso que te acontece não é nada demais, qq programa de DOS que ponhas a correr e que demore o suficiente para que abras o task manager veras o dito sempre a 100%. tenta um ciclo infinito e vais ver isso. mas isso até em JavaScript fazes. ;)
arranja a datasheet do cpu e faz um programa em asm :)
um loopzinho infinito deve dar conta do problema
apesar do windows emular o dos, penso k isso nao vai afectar o 'burnout'
Yah!
Mas um loop em asm não vai dar ao mesmo que um loop em C++?!
Afinal de contas trata-se da repetição sem fim de um conjunto de instruções!
Isso já eu fiz...mas como referiu o Andr0m3da, o Pc continua utilizavel. E eu quero-o com arrasto...mto arrasto. Não parado claro, mas com um arrasto tremendo...afinal uma ferramenta para OC tem de ser potente, para se saber com mais precisão os limites do sistema!
[[]]
1) arranja a datasheet do cpu
2) faz um programa em asm k use todas as instrucoes do cpu, dai o uso da datasheet
:)
isto era o ideal (tendo em conta k nos preocupavamos-nos em encher as caches) so k isto e muito trabalhoso, visto existirem centenas de instrucoes
o ideal e mesmo o k andr0m3da disse, usar um pass-recovery, porke? pork o programa tem muita matematica, fazendo muitas belas equacoes e usando muita instrucao do cpu
eu uma vez encontrei na net um pgp brute force :), ja estas a imaginar :)
mas o ideal para aaaaaahhhhrrrrrrrrrrrrrrrrassssssssssssstar o cpu e mesmo executar tudo isto simultaneamente
seti, prime, demo ut, 3dmark
acho k isto chega para arrastar :)
Já arranjei a datasheet.
Agora só me falta arrumar os exames para ter tempo.
Mas pelo que vi, vou demorar bastante só a tentar perceber o que lá está escrito!!!
ASM... não me apetecia muito ter de olhar para isso!!
Pergunto mais uma vez...posso usar C++?
Quais as vantagens do ASM em detrimento do C++?(se é que existem!)
Podes usar à vontade c++ pra fazeres o programa ..., no entanto as rotinas de baixo nivel tem que ser feitas em ASM (o c++/c permitem chamadas a rotinas de ASM), a explicação é lógica .., cada compilador de qq linguagem (neste caso c++) optimiza o código para correr numa arquitectura especifica, no entanto além do compilador poder estar optimizado para arquitecturas da década passada (como deve ser o caso), nem sequer conhecem o que é SSE/SSe2/3Dnow .., etc ..
Outro problema é que tu não ficas a saber exactamente o código que o compilador vai gerar (embora possas despejar assembler), ficando sem controlo exactamente nos registos que este vai correr.., além disso o que tu julgas ser um while infinito a ocupar 100% do cpu na realidade está a ocupar esses 100% mas utiliza apenas um par de registos e 1 operação lógica ...
O ASM dá-te controle exactamente no que queres utilizar do CPU ..., mas prepara-te porque vai ser grande o trabalho ....
Persuader
01-07-2002, 20:38
Só uma coisa, o task manager do windows não é tão preciso quanto isso a medir a ocupação do CPU. Depois, o simples facto de o computador não arrastar muito não quer dizer que a ocupação do processador não esteja a 100%. Simplesmente o Windows reparte o tempo de CPU pelas demais tarefas, e retira tempo de CPU à tua tarefa para poder executar as outras.
Nos computadores onde notas bastante "arrasto" são geralmente sistemas com pouca memória e/ou discos lentos, obrigando assim ao aumento de memória virtual. Ou seja, arrasta porque está a aceder ao disco e o programa que queres utilisar não estava em memória, e portanto tens de esperar que seja carregado ou reactivado (da memória virtual). Nestes casos a ocupação de CPU é muitas vezes inferior a 20% - fica à espera do disco duro. Geralmente a adicição de mais memória resolve estes casos.
Por último, para que tenhas a tua tarefa a ter o efeito desejado deves corre-la em puro DOS (vais ver que não consegues fazer mesmo mais nada :)). Se necessitas mesmo de usar o Windows, então deves arranjar maneira de dar prioridade máxima à tua tarefa, para que esta tenha prioridade sobre as outras.
Se quiseres ir ainda mais longe, podes tentar uma linguagem que tenha suporte de tempo-real, tipo ADA95.
Boa sorte
vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.