Uso de SNMP para gerencias análises
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
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
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
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