Uso de SNMP para gerencias análises

2007-06-05 Thread Fibrox Fibrox

Pessoal:

Temos necessidade de rodar muitas análises, alias milhares, e como cada uma
demora horas para serem concluídas, estava pensando em colocar várias
máquinas, P4 com Debian, para fazer o serviço, mas acho que ele seria mais
eficiente se as máquinas rodassem se forma continua, ou seja, terminando uma
anaálise já pegaria a próximo disponível e seguiriam todas até terminar o
serviço.

Penso em fazer isso, atráves da comunicação entre as várias máquinas que
estão ligadas e as que serão ligadas, onde uma "gerente", em um primeiro
momento, diria oque tem que ser feito, ou seja, ela requisitaria a maquina
M1, para a análise A1, e a M2 para a A2, e assim por diante, quando a M1
terminar a análise ela solicita qual a próxima análise deverá ser feita,
sendo assim ela não ficaria parada.

Para isso pensei em usar SNMP, onde a gerente diria oque fazer e ao longo do
trabalho iria "anotando" quais análises já foram feitas e quais a fazer.

Nunca usei SNMP, mas sei que é usado para observação do estado de
dispositivos de rede, e por que não máquinas.

Oque preciso saber é como enviar uma "ordem" para a M1 e como ela reconhece
a mesma e da mesma forma como  M1 enviaria para a "gerente" que ela terminou
o serviço.

Veja que todas as máquinas já terão inicialmente os dados para análise,
sendo que a "gerente" enviaria apenas o número da que se deseja rodar.

Ufa!!

Alguém tem alguma luz para este assunto?

Muito obrigado.

Fibrox
-
"O tempo passa. Divirta-se!"


Re: Uso de SNMP para gerencias análises

2007-06-05 Thread Rúben Lício

On 6/5/07, Fibrox Fibrox <[EMAIL PROTECTED]> wrote:


Pessoal:

Temos necessidade de rodar muitas análises, alias milhares, e como cada
uma demora horas para serem concluídas, estava pensando em colocar várias
máquinas, P4 com Debian, para fazer o serviço, mas acho que ele seria mais
eficiente se as máquinas rodassem se forma continua, ou seja, terminando uma
anaálise já pegaria a próximo disponível e seguiriam todas até terminar o
serviço.



Talves seja interessante pegar um processador de multiplos núcleos ou um
paralelo mesmo, e fazer a aplicação distribuida para melhorar o desempenho.
Já pensou a respeito?

Penso em fazer isso, atráves da comunicação entre as várias máquinas que

estão ligadas e as que serão ligadas, onde uma "gerente", em um primeiro
momento, diria oque tem que ser feito, ou seja, ela requisitaria a maquina
M1, para a análise A1, e a M2 para a A2, e assim por diante, quando a M1
terminar a análise ela solicita qual a próxima análise deverá ser feita,
sendo assim ela não ficaria parada.

Para isso pensei em usar SNMP, onde a gerente diria oque fazer e ao longo
do trabalho iria "anotando" quais análises já foram feitas e quais a fazer.

Nunca usei SNMP, mas sei que é usado para observação do estado de
dispositivos de rede, e por que não máquinas.

Oque preciso saber é como enviar uma "ordem" para a M1 e como ela
reconhece a mesma e da mesma forma como  M1 enviaria para a "gerente" que
ela terminou o serviço.

Veja que todas as máquinas já terão inicialmente os dados para análise,
sendo que a "gerente" enviaria apenas o número da que se deseja rodar.




Até onde sei SNMP é somente um protocolo de rede. Ao que me parece o seu
problema atualmente não é o protocolo de comunicação, e sim o como programar
isso.
Eu faria um servidor e um cliente, e o servidor gerenciaria isso enquanto os
clientes pediriam novas tarefas sempre que tivessem livre.
Você pode fazer isso se bobiar até mesmo em SH, mas em C também não é
dificil se você tem familiáridade com sockets.

Ufa!!


Alguém tem alguma luz para este assunto?



Se o seu objetivo é aumento de performance, pense em pegar maquinas para
aplicações paralelas, e re-estruturar seu programa para utilizar o máximo
dessas maquinas, e também faça uma estrutura de distribuição de
processamento pela rede.
A primeira vista parece algo de outro mundo, mas n é muito complicado não.

Muito obrigado.


Fibrox
-
"O tempo passa. Divirta-se!"





--
Rúben Lício Reis

Game Developer
Linux user #433535


Re: Uso de SNMP para gerencias análises

2007-06-05 Thread cesar
Bom dia

Já pensou no OpenNMS?
http://www.opennms.org/

Abraços,
César



> Pessoal:
>
> Temos necessidade de rodar muitas análises, alias milhares, e como cada
> uma
> demora horas para serem concluídas, estava pensando em colocar várias
> máquinas, P4 com Debian, para fazer o serviço, mas acho que ele seria mais
> eficiente se as máquinas rodassem se forma continua, ou seja, terminando
> uma
> anaálise já pegaria a próximo disponível e seguiriam todas até terminar o
> serviço.
>
> Penso em fazer isso, atráves da comunicação entre as várias máquinas que
> estão ligadas e as que serão ligadas, onde uma "gerente", em um primeiro
> momento, diria oque tem que ser feito, ou seja, ela requisitaria a maquina
> M1, para a análise A1, e a M2 para a A2, e assim por diante, quando a M1
> terminar a análise ela solicita qual a próxima análise deverá ser feita,
> sendo assim ela não ficaria parada.
>
> Para isso pensei em usar SNMP, onde a gerente diria oque fazer e ao longo
> do
> trabalho iria "anotando" quais análises já foram feitas e quais a fazer.
>
> Nunca usei SNMP, mas sei que é usado para observação do estado de
> dispositivos de rede, e por que não máquinas.
>
> Oque preciso saber é como enviar uma "ordem" para a M1 e como ela
> reconhece
> a mesma e da mesma forma como  M1 enviaria para a "gerente" que ela
> terminou
> o serviço.
>
> Veja que todas as máquinas já terão inicialmente os dados para análise,
> sendo que a "gerente" enviaria apenas o número da que se deseja rodar.
>
> Ufa!!
>
> Alguém tem alguma luz para este assunto?
>
> Muito obrigado.
>
> Fibrox
> -
> "O tempo passa. Divirta-se!"
>



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Uso de SNMP para gerencias análises

2007-06-05 Thread Rúben Lício

On 6/5/07, Fibrox Fibrox <[EMAIL PROTECTED]> wrote:


Ruben:

As análises são rodadas no R, e que há em um dos casos mil análises para
serem feitas, e cada uma pega em torno de 6 horas. Temos acesso também ao
CNPAD (Centro Nacional de Processamento de Alto Desempenho),  o qual também
será usado.

Este problema nos é constante, temos necessidade de análises que gastam um
tempo enorme. Sendo assim pensei em deixar algumas máquinas, duas são HT,
para fazer o serviço.



Então maquina não é o problema, menos mal.
Não sei com relação a forma de desenvolvimento de vocês, mas por padrão o
pessoal costuma desenvolver tudo linear, o que é ruim no caso de
mult-processamento. Se você tiver um programa linear rodando em um
Computador com 10 processadores ou com 1 só, é basicamente o mesmo
desempenho. Verifique ai se está tudo ok com relação a isso - isso é um dos
pontos que pode ganhar MUITO desempenho.

O meu problema além de que a coisa funcione é saber como mandar as mensagens

entre os micros, sei que pode funcionar, mas não sei nem por onde começar.



Eu atualmente uso SDLNET [0], que é uma lib multi-plataforma para C, e tem
porte para Perl, Python e mais várias outras linguagens.
De qualquer forma, a maioria das linguagens tem formas de tratar sockets e
comunicação de rede. Busque informações de como fazer comunicação por
sockets na linguagem que vocês utilizam, provavelmente isso vai dar conta do
recado.
Como é um projeto grande, vale a pena vocês desenvolverem um servidor para
ele, que gerenciê essas milhares de análises. Inclusive, é bom até o server
gerenciar os resultados, por exemplo enviando sempre uma análise para pelo
menos 2 computadores e depois comparando se deu o resultado correto.
Enfim, há muitas possibilidades, mas para começar o negócio é aprender a
mexer com socket na linguagem que vocês usam.

[0] http://www.libsdl.org/projects/SDL_net/

Voce(s) teria algum exemplo de como fazer isso.


Em SDLNet há esses exeplos[1] na documentação, qualquer dúvida pode me dar
um toque, com relação a comunicação por TCP/IP eu dou manutenção tanto no
cliente quanto no servidor que usamos por aqui, então é muito possível que
possa ajudar.

[1] http://jcatki.no-ip.org/SDL_net/SDL_net_demos.tar.gz

Vou ver o link que o César enviou, do OpenNMS, ver se acho algo.


Não sei se estudar protocolos de comunicação lhe ajude nesse momento. Com
certeza seria bom, as não é o necessário para você desenvolver o que você
precisa, já que a maioria das bibliotecas encapsulam isso

Rúben.





Fibrox


Em 05/06/07, Rúben Lício <[EMAIL PROTECTED]> escreveu:
>
> On 6/5/07, Fibrox Fibrox <[EMAIL PROTECTED]> wrote:
> >
> > Pessoal:
> >
> > Temos necessidade de rodar muitas análises, alias milhares, e como
> > cada uma demora horas para serem concluídas, estava pensando em colocar
> > várias máquinas, P4 com Debian, para fazer o serviço, mas acho que ele seria
> > mais eficiente se as máquinas rodassem se forma continua, ou seja,
> > terminando uma anaálise já pegaria a próximo disponível e seguiriam todas
> > até terminar o serviço.
>
>
> Talves seja interessante pegar um processador de multiplos núcleos ou um
> paralelo mesmo, e fazer a aplicação distribuida para melhorar o desempenho.
> Já pensou a respeito?
>
> Penso em fazer isso, atráves da comunicação entre as várias máquinas que
> > estão ligadas e as que serão ligadas, onde uma "gerente", em um primeiro
> > momento, diria oque tem que ser feito, ou seja, ela requisitaria a maquina
> > M1, para a análise A1, e a M2 para a A2, e assim por diante, quando a M1
> > terminar a análise ela solicita qual a próxima análise deverá ser feita,
> > sendo assim ela não ficaria parada.
> >
> > Para isso pensei em usar SNMP, onde a gerente diria oque fazer e ao
> > longo do trabalho iria "anotando" quais análises já foram feitas e quais a
> > fazer.
> >
> > Nunca usei SNMP, mas sei que é usado para observação do estado de
> > dispositivos de rede, e por que não máquinas.
> >
> > Oque preciso saber é como enviar uma "ordem" para a M1 e como ela
> > reconhece a mesma e da mesma forma como  M1 enviaria para a "gerente" que
> > ela terminou o serviço.
> >
> > Veja que todas as máquinas já terão inicialmente os dados para
> > análise, sendo que a "gerente" enviaria apenas o número da que se deseja
> > rodar.
>
>
>
> Até onde sei SNMP é somente um protocolo de rede. Ao que me parece o seu
> problema atualmente não é o protocolo de comunicação, e sim o como programar
> isso.
> Eu faria um servidor e um cliente, e o servidor gerenciaria isso
> enquanto os clientes pediriam novas tarefas sempre que tivessem livre.
> Você pode fazer isso se bobiar até mesmo em SH, mas em C também não é
> dificil se você tem familiáridade com sockets.
>
> Ufa!!
> >
> > Alguém tem alguma luz para este assunto?
>
>
> Se o seu objetivo é aumento de performance, pense em pegar maquinas para
> aplicações paralelas, e re-estruturar seu programa para utilizar o máximo
> dessas maquinas, e também faça uma estrutura de d