Sei o básico se scripts mas isso já está fora dos meus conhecimentos, também sei que pode não ser muito útil tentar aprender aos poucos pesquisando na net sem antes perguntar a quem entende do assunto (farei isso se ninguém me ajudar)... Então lá vai meu desejo.
Quero fazer em shell Script o que propões o seguinte pseudocódigo:
# Compilar
Compile o programa C e salve o executável como a.o # Sei fazer
# Executar quando houver núcleo livre
Verifique quantos núcleos tem o processador da máquina # Daqui em diante já não sei
loop em argumento # Sei fazer loops e condicionais
Verifique quantos processos estão sendo executados (ps arxu?)
Loop infinito
Se há menos processos quanto núcleos-1 # Um dos núcleos deve ficar livre para este script
Execute "a.o argumento"
Pule para o próximo argumento
Fim se
Espere 1 min
Fim loop infinito
fim loop em argumento
Loop infinito
Se todos todos "a.o" terminaram
Sair do loop
Fim se
espere 1 min
Fim loop infinito
[... Resto do código - plotar gráficos - ai já é tranquilo...]
Motivo? Me disseram que se uma máquina tem processador de N núcleos então não posso executar meu programa mais que N vezes, sob pena de prejudicar os cálculos. Claro que no cluster há muitas máquinas mas não quero ter que executar manualmente meu programa umas mil vezes...
Se quiserem podem mandar o script e explicar cada comando (claro que também quero aprender) ou apenas mandar fontes que falem sobre cada uma das dificuldades.
Não sei se é importante mas... Minha máquina roda Ubuntu Minimal (quero testar nela) e as do cluster rodam openSUSE.