Eu tenho um aplicativo que pode ser trivialmente paralelizado, mas seu desempenho é em grande parte limitado a E / S. O aplicativo lê uma única matriz de entrada armazenada em um arquivo com tamanho geralmente de 2 a 5 GB (mas espero que esse número aumente no futuro). Um cálculo típico aplica a mesma operação a cada linha ou coluna dessa matriz. Para operações pesadas na CPU, eu tenho um dimensionamento muito bom de cerca de 100 processadores, mas para operações mais lentas, a E / S e a comunicação relacionada (acesso NFS) dominam e não posso usar mais do que alguns processadores com eficiência.
Quais são as opções eficientes e portáteis (idealmente eficientes em termos portáteis) para essa situação? HDF5 paralelo parece promissor. Alguém tem experiência na vida real com isso?
MPI-I / O seria algo que vale a pena examinar? Ele pode funcionar eficientemente com um determinado layout de arquivo ou eu tenho que adaptar tudo?