У мене є додаток, який можна тривіально паралелізувати, але його продуктивність значною мірою пов'язана з введенням / виведенням. Додаток зчитує єдиний масив вхідних даних, що зберігається у файлі, який зазвичай має розмір 2-5 ГБ (але я очікую, що це число зросте в майбутньому). Типовий обчислення застосовує ту саму операцію до кожного рядка або стовпця цього масиву. Для важких процесорних операцій я отримую дуже гарне масштабування до приблизно 100 процесорів, але для повільніших операцій введення-виведення та відповідна комунікація (доступ до NFS) домінують, і я не можу ефективно використовувати більш ніж декілька процесорів.
Які є ефективні та портативні (в ідеалі ефективні) варіанти для такої ситуації? Паралельний HDF5 здається багатообіцяючим. Хтось має з цим досвід у реальному житті?
Чи буде MPI-I / O чимось вартим уваги? Чи може це ефективно працювати з заданим макетом файлів, або мені потрібно все адаптувати?