[SP-pm] ordenando arquivos.

Bruno Buss bruno.buss at gmail.com
Tue Jul 26 13:15:12 PDT 2011


2011/7/26 Thiago Yukio Kikuchi Oliveira <stratust at gmail.com>

>
> 2011/7/26 Bruno Buss <bruno.buss at gmail.com>
>
>> 2011/7/26 Thiago Yukio Kikuchi Oliveira <stratust at gmail.com>
>>
>>> 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/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110726/2b95f7f2/attachment.html>


More information about the SaoPaulo-pm mailing list