Fórum Delphi 7amp;Intel XEON=Problemas de performance (Sim, Não) #299624

16/10/2005

0

Estou a algum tempo enfrentando um problema cujo o qual até agora se demonstrou sem solução, tenho um software escrito em delphi baseado em Thread´s para leitura de arquivos de texto (com 60 carcteres por linha num total de 5 milhões de linhas, resultando num arquivo de 297Mb) rodando este software em qualquer INTEL cujo o processador seja diferente do XEON eu consigo obter que o software consuma 100¬ de processamento, o mesmo acontece quando eu utilizo qualquer AMD exceto o OPTERON.
Essa semana entrei em contato com o pessoal de suporte da INTEL e com o pessoal de suporte da MICROSOFT ambos ficam jogando a culpa um no outro para esse problema, então o que fiz, entrei em contato com meu fornecedor e perguntei se eles já tinha ouvido falar de alguem que tivesse enfrentado esse mesmo problema. Bom eles me disseram que ja haviam ouvido clientes se queixarem disso principalmente a galera que mexe com designer gráfico e utilizava esses processadores, ele me aconselhou a procurar re-escrever meu software para que melhor atenda a tecnologia do meu processador, de início não concordei muito com o que eles me falaram, portanto quero ouvir mais opiniões.
Alguém já passou por um problema parecido ou alguém sabe se tenho realmente que re-escrever meu software para se adequar a tecnologia do XEON? se tenho como faço isso?
Já é a segunda vez que posto essa pergunta aqui, na primeira acho que não fui muito claro, espero estar dando informações mais diretas agora para que alguém possa me dar uma luz e uma direção para que caminho devo tomar. Só para constar abaixo estão as especificações do meu PC.

INTEL XEON 2.8Ghz FSB 800Mhz
PLACA MÂE INTEL SE7520AF2
2GB DDR2 400Mhz
2 HD SCSI 36.x GB

:roll: :?: :idea: :?:


Henry Lima

Henry Lima

Responder

Posts

19/10/2005

Crash

nao sei ao certo... mais eh provavel que seja porque o delphi escreve aplicações em 32 bits enquanto seu processador trabalha a 64 bits.... o certo seria o consumo de processamento ser menor mais talvez a tecnologia de processamento eh diferente e ele gasta mto pra tentar trabalhar igual aos processadores 32 bits. Por isso a necessidade de reescrever a aplicação.

t+


Responder

Gostei + 0

19/10/2005

Massuda

Eu não entendi uma coisa... porque você está reclamando que seu programa [b:f5a2369a36]não[/b:f5a2369a36] está consumindo 100¬ do processador? Normalmente isso é o que as pessoas desejam.

Você já experimentou medir o tempo que seu programa gasta para processar (de fato) os dados e o tempo que ele gasta para ler os dados do disco? Normalmente a thread ficará ociosa enquanto espera a leitura dos dados, logo a CPU ficará livre.


Responder

Gostei + 0

19/10/2005

Henry Lima

Amigo, ja testei em um computador normal o software demora 1 minuto e 48 segundos para processar 500 mil linhas isso utilizando 100¬ do processador, no XEON com 2 processadores so que sem utilizar os 100¬ ele demora mais de 8 minutos para processar as mesmas 500 mil linhas sendo que se ele utilizasse os 100¬ dos 2 processadores isso seria feito em menos de 1 minuto com certeza. Eu preciso dos 100¬ dos processadores ao contrario do resto de usuarios, senao vou ficar o resto da vida para processar todos os arquivos que ainda tenho que processar...


Responder

Gostei + 0

19/10/2005

Massuda

[quote:342b7848db=´Henry Lima´]...no XEON com 2 processadores...[/quote:342b7848db]Não sei se é possível, mas experimente (parece ridículo) desativar um dos processadores ou inibir o multithread da máquina.

A razão disso é que é difícil implementar bons programas multithread testando apenas em máquinas com um único processador. Com dois ou mais processadores (ou mesmo HT) as threads passam a ser executadas de fato em paralelo e questões relacionadas a sincronismo passam a ser críticas. Um exemplo disso é a queda de performance que ocorre com o IB6 quando executado em uma máquina com HT.


Responder

Gostei + 0

19/10/2005

Henry Lima

Eu tenho o software escrito em THREAD e escrito de maneira tradicional, tanto os dois fontes não executam 100¬ da maquina xeon, acho que o problema de sincronismo nao procede muito nesse caso, pois ja testei os dos fontes no XEON e nada... e por incrivel que pareça a THREAD nos computadores normais é muito mais rápida!


Responder

Gostei + 0

19/10/2005

Massuda

Minha sugestão foi você testar sem multithread por parte do hardware ou sistema operacional. Seu programa não precisaria ser mexido.

Fora isso, a única opção que vejo seria esperar por um Delphi 64-bits, o que, segundo o roadmap da Borland, só vai acontecer em 2008.


Responder

Gostei + 0

19/10/2005

Henry Lima

Aonde eu desativo isso no windows ?


Responder

Gostei + 0

19/10/2005

Massuda

[quote:79f59a8413=´Henry Lima´]Aonde eu desativo isso no windows ?[/quote:79f59a8413]Sinceramente, não sei.

Mas lembrei que isso pode ser feito no seu programa, usando a função da API do Windows [url=http://msdn.microsoft.com/library/en-us/dllproc/base/setthreadaffinitymask.asp]SetThreadAffinityMask[/url] para forçar sua thread ser executada em um determinado processador; se você forçar todas as suas threads para um mesmo processador, isso dá o mesmo efeito de ter apenas um processador. Talvez você tenha que usar também [url=http://msdn.microsoft.com/library/en-us/dllproc/base/setprocessaffinitymask.asp]SetProcessAffinityMask[/url] para forçar seu programa ser executado em um determinado processador. Isso é algo que pesquisei meses atrás, mas nunca cheguei a usar, portanto, não tenho mais detalhes do que isso.

Uma curiosidade... quantas threads você tem simultaneamente trabalhando no arquivo?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar