Child pages
  • Controle de uso de Recursos na execução de Algoritmos
Skip to end of metadata
Go to start of metadata

O CSGrid e os sistemas CSBase permitem que os usuários administrem o uso de determinados recursos (cpu e memória) na execução de determinados algoritmos. O usuário que possui a permissão de gerência de algoritmos consegue, pela interface do cliente, alterar valores utilizados para controle de recursos.

Em primeiro lugar, para que o controle de recursos esteja habilitado no sistema, é necessário que uma propriedade do Scheduler Service esteja habilitada. O arquivo de configuração System.properties deve incluir a seguinte propriedade:

# Indica se deve fazer o controle de recursos
SchedulerService.sga.resources.control = true

Descrevemos a seguir o que o usuário deve fazer para estabelecer o controle de recursos em um algoritmo, usando como exemplo o controle de CPUs que um algoritmo requer para iniciar sua execução.

No cliente do CSGrid, entrar na janela de "Gerenciar Algoritmos", selecionar o nome do algoritmo e, na aba de "Informações Básicas", alterar o campo "Unidade de Processamento". A figura 1 ilustra a janela para configuração do algoritmo "Solver do Bandeira Brasil".
Esse campo indica quanto de CPU livre (total) a execução daquele algoritmo requer. Esse número varia entre 0 e o número de CPUs da máquina, sendo que dificilmente um algoritmo conseguiria executar se requeresse o número máximo de CPUs, pois isso implicaria em uma dedicação exclusiva que não ocorre.
Figura1: Gerenciamento de Algoritmos

Para configurar esse campo, precisamos:
(a) descobrir qual a ocupação média da máquina quando nenhum algoritmo está executando.
Na janela de monitoração de servidores, selecione a máquina e observe o valor na coluna CPU. No exemplo da figura 2, esse valor é 55%.
Figura 2: Monitoração de Servidores

(b) descobrir qual o número de CPUs a máquina possui.
Na mesma janela de monitoração de servidores, selecione a máquina e escolha a ação de Detalhar. Uma janela exibirá o número de processadores que a máquina possui. Na mesma figura 2, esse valor é 2.

(c) definir o número máximo de execuções simultâneas de um mesmo algoritmo.
De acordo com os requisitos que o próprio ambiente requer, estabeleça quantas execuções de um mesmo algoritmo podem ocorrer simultaneamente. Vamos usar como exemplo o valor 3.

O cálculo que precisa ser feito para definir o valor da propriedade "Unidade de Processamento" do algoritmo é a seguinte:

(( 1 - a) / c) x b

Segundo o exemplo da figura, teríamos portanto:

(( 1 - .55) / 3) x 2 = 0.3

Repare que esse valor de configuração é referente a uma unidade que varia de 0 até 2, onde 2 é o número de CPUs que temos no exemplo. Isso é o mesmo que dizer que o algoritmo precisa de 15% de CPU livre para execução, ou seja, 0.3 / 2. Supondo que houvesse 3 execuções simultâneas, elas ocupariam juntas 45% da máquina, que somando com a média de 55% do item a, chegaríamos ao total de 100% de ocupação.

  • No labels