2011/7/26 Thiago Yukio Kikuchi Oliveira <[email protected]> > > 2011/7/26 Bruno Buss <[email protected]> > >> 2011/7/26 Thiago Yukio Kikuchi Oliveira <[email protected]> >> >>> Fazer o 'sort' de arquivos gigantes está sendo o problema da >>> bioinformática ultimamente >>> (cada sequencia que eu recebo é um arquivo texto com 15GB de informação >>> cada). >>> >>> Perl não dá conta de fazer o sort pois faz tudo em memória. >>> >> >> Errado, não é o "Perl que faz tudo em memória". É a função se sort nativa >> do Perl que faz tudo em memória. >> > > Se a função nativa não é o "Perl" então eu não sei o que é. >
Se a função qsort da cstdlib ordena tudo em memória, você vai afirmar que "C não dá conta de fazer o sort pois faz tudo em memória."? Eu acredito que não, pois exatamente existe uma diferença entre o que é a linguagem (Perl) e as funções nativas (ou a biblioteca padrão que já vem com ela, se preferir assim). > > >> >> É perfeitamente possível realizar uma implementação do link que mandei >> acima... ou então tentar utilizar algum módulo pronto: >> > > Implementar o sort externo pode ser feito em qualquer linguagem, e como > você demonstrou já existe em Perl. > Porém, acredito que linguagens de mais baixo nivel, C por exemplo, são > melhores quando você quer realizar uma tarefa específica que exige > processamento intesivo. > Cara, eu gosto muito de C/C++... mas que deve-se tomar cuidado com afirmações deste tipo. A menos que você tenha alguma otimização especificamente em C/C++ (ou seja, saiba o que está fazendo), minah tendência é de duvidar um pouco dessas afirmações. Anyway, eu acho que um sorting de 1 TB está mais para IO-bound (ou memory bound) do que CPU-bound. > > Por exemplo, estou utilizando o nsort que é feito em C e utiliza threads > para o sorting. Ele ordena 1TB em 33 minutos em um PC comum com multicore. > Você já testou isso, ou você está apenas repetindo o que está escrito no site do nsort? No mais, isso não me diz - quase - nada... você não deu mais nenhuma informação sobre o ambiente. O que é um "PM comum com multicore"? São quantos cores? Qual o clock? Como é feito o IO? Local, rede? Se for em rede, qual o tipo de rede de interconexão? etc. [ ]'s -- Bruno C. Buss http://brunobuss.wordpress.com/ http://www.dcc.ufrj.br/~brunobuss/
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
