<div class="gmail_quote">2011/7/26 Thiago Yukio Kikuchi Oliveira <span dir="ltr"><<a href="mailto:stratust@gmail.com">stratust@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br><div class="gmail_quote"><div class="im">2011/7/26 Bruno Buss <span dir="ltr"><<a href="mailto:bruno.buss@gmail.com" target="_blank">bruno.buss@gmail.com</a>></span><br></div><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div><div>2011/7/26 Thiago Yukio Kikuchi Oliveira <span dir="ltr"><<a href="mailto:stratust@gmail.com" target="_blank">stratust@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">





Fazer o 'sort' de arquivos gigantes está sendo o problema da bioinformática ultimamente<br>(cada sequencia que eu recebo é um arquivo texto com 15GB de informação cada).<br><br>Perl não dá conta de fazer o sort pois faz tudo em memória.<br>






</blockquote><br></div>
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.<br></div></blockquote></div><div><br>Se a função nativa não é o "Perl" então eu não sei o que é.<br>

</div></div></blockquote><div><br>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).<br>

 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>

 </div><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><br>É perfeitamente possível realizar uma implementação do link que mandei acima... ou então tentar utilizar algum módulo pronto:<br>



</div></blockquote><div> </div></div><div>Implementar o sort externo pode ser feito em qualquer linguagem, e como você demonstrou já existe em Perl. <br>
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.<br></div></div></blockquote><div><br>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.<br>

<br>Anyway, eu acho que um sorting de 1 TB está mais para IO-bound (ou memory bound) do que CPU-bound.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="gmail_quote"><div>
<br>
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.<br></div></div></blockquote><div><br>Você já testou isso, ou você está apenas repetindo o que está escrito no site do nsort?<br>

<br>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.<br>

<br>[ ]'s<br></div></div>-- <br>Bruno C. Buss<br><a href="http://brunobuss.wordpress.com/">http://brunobuss.wordpress.com/</a><br><a href="http://www.dcc.ufrj.br/~brunobuss/">http://www.dcc.ufrj.br/~brunobuss/</a><br>