[Bh-pm] Novo módulo: subs::parallel

Nilson Santos Figueiredo Junior acid06 at gmail.com
Sun Jun 19 19:28:24 PDT 2005


Pessoal,

Como alguns podem ter ouvido falar em alguns emails meus, um novo
módulo estava no forno. Pois bem, já está na CPAN o módulo
subs::parallel versão 0.07.

http://search.cpan.org/~nilsonsfj/subs-parallel-0.07/

Abaixo, vai uma parte da documentação traduzida / adaptada. Em breve
pretendo disponibilizar documentações traduzidas para português tanto
do subs::parallel quanto de outro módulo meu, o Error::TryCatch. Quem
sabe, com isso, encorajo outras pessoas a fazerem o mesmo, aumentando
o nível de conhecimento da comunidade Perl nacional.

DESCRIÇÃO
O módulo subs::parallel traz a possibilidade da criação de aplicações
com múltiplos fluxos de controle (multi-threaded) de maneira
conveniente e fácil, através das "subrotinas paralelas".

Subrotinas paralelas são nada mais que simples subrotinas que são
executadas em outro thread. Quando chamadas, elas retornam
imediatamente porém permanecem executando em paralelo. Quando seu
valor de retorno é necessário em algum ponto do programa, ele é
transparentemente buscado do outro thread, sem nenhuma preocupação
adicional.

Dessa forma, como pode-se notar, o alvo principal do módulo é prover
uma forma mais simples o possível para fazer uso de threads. De fato,
a interface é tão transparente que, ignorando os comandos de
paralelização, você não poderia dizer se é ou não um programa
multi-threaded. Todo o tratamento dos múltiplos fluxos de controle é
feito automaticamente.

MOTIVAÇÃO
A principal razão por trás do desenvolvimento desse módulo foi o fato
de que threads não são muito utilizados em Perl. Alguns argumentam que
isso ocorre graças à dificuldade do uso de threads em Perl. Outros
poderiam dizer que as restrição impostas pelo uso de threads são o
principal problema (normalmente, não é possível passar estruturas de
dados complexas de um thread para o outro).

O último argumento está fora do meu alcance. Porém, pelo uso de
recursos já existentes, foi possível disfarçar um pouco a situação.
Por isso, usando o subs::parallel você consegue retornar qualquer
estrutura de dados ou objeto de sua subrotina paralelizada.

O fato citado pelo primeiro argumento é o alvo desse módulo: prover
uma forma extremamente simples de se fazer aplicações com múltiplos
fluxos de controle (multi-threaded). A razão dessa ênfase é que com
essa realidade próxima de computadores com processadores dual-core
acessíveis a todos, multi-threading pode se tornar o fator que
diferencial na qualidade de um software.

Porém, eu seria disonesto se não dizesse que parte da minha motivação
foi para provar que isso poderia ser feito em Perl.

DOCUMENTAÇÃO TÉCNICA
Infelizmente, a parte técnica ainda não está traduzida. Porém, o
módulo vem com toda a documentação em inglês necessária para o uso e
não é nada muito difícil de entender.

Quem se interessar pelo uso do módulo, ou quiser ver só por
curiosidade mesmo, pode instalá-lo pela CPAN. Acredito que em breve o
repositório PPM da ActiveState também deve ter o módulo disponível.

O endereço é:
http://search.cpan.org/~nilsonsfj/subs-parallel-0.07/

BUGS
Caso seja encontrado algum bug, na documentação do módulo tem
instruções de como reportar pelo RT da CPAN. Caso prefira reportar o
bug por email, prefiro que seja pelo endereço: nilsonsfj AT cpan.org.

DÚVIDAS
Na medida do possível estarei disponível para tirar dúvidas por email
daqueles que se por ventura venham a se interessar pelo módulo.

PS: aos membros de várias listas de discussão, me desculpem pelo
cross-posting, mas acredito ser algo que vale a pena.

-Nilson Santos F. Jr.


More information about the Bh-pm mailing list