Paralelismo no shell script

41 views
Skip to first unread message

Fabio Bairros

unread,
Jan 21, 2024, 11:31:17 AMJan 21
to python...@googlegroups.com
Saudações.

Como é possível fazer paralelismo em shell script ? chamar dois programas em Python, por exemplo, de maneira que possam ser executados da forma mais paralela possível.

Caso o assunto shell script fuja ao escopo do grupo, favor indicar os fóruns adequados.


At.te,
Fabio Bairros

Danilo J. S. Bellini

unread,
Jan 21, 2024, 12:24:13 PMJan 21
to python...@googlegroups.com
Há pelo menos 3 formas de fazer isso:

1) Rodar jobs em background (por exemplo com "comando1 & comando2", ou caso a ideia seja chamar os 2 manualmente, vc pode chamar o primeiro, pressionar "Ctrl-Z" para "pará-lo", e mandando ele continuar para background chamando "bg"). Recomendo que procure documentação sobre jobs, bg e fg no estilo "korn" (que é o que usamos atualmente), o texto em https://www.man7.org/linux/man-pages/man1/jobs.1p.html pode ajudar. A documentação sobre o "&" você pode encontrar na página de manual do bash https://www.man7.org/linux/man-pages//man1/bash.1.html nas seções "Shell Grammar -> Lists" e "Job Control".

2) Rodar via "xargs -P". Por exemplo, suponha que seus comandos estão todos em um arquivo "comandos.txt" cada um em uma linha, suponha que seja uma centena deles e você quer rodar todos em, digamos, 14 processos em paralelo, por ser supostamente o número de núcleos de sua CPU. Então "cat comandos.txt | xargs -d'\n' -n1 -P14 sh -c" irá rodá-los em paralelo dessa forma.

3) Usar o GNU parallel. https://www.gnu.org/software/parallel/

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para acessar essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CALZ%2BQOoGfb2fxPHE0OeL2V571h7f64dBFjR4kaqDsH7PxuZ8_g%40mail.gmail.com.


--
Danilo J. S. Bellini

Sinval Júnior

unread,
Jan 21, 2024, 6:03:23 PMJan 21
to python...@googlegroups.com
Dado que não conheço o contexto do seu problema, sugiro que você considere implementar o paralelismo diretamente em Python. A linguagem oferece diversos recursos para isso, e a manutenção do código pode ser mais simples a longo prazo.

Ao encaminhar esta mensagem, por favor:
1 - Apague meu endereço eletrônico;
2 - Encaminhe como Cópia Oculta (Cco ou BCc) aos seus destinatários. Dificulte assim a disseminação de vírus, spams e banners.

#=================================================================+
#!/usr/bin/env python
nome = 'Sinval Júnior'
email = 'sinvalju arroba gmail ponto com'
print nome
print email
#==================================================================+


--
Reply all
Reply to author
Forward
0 new messages