Если ваша программа представляет собой один большой цикл, использование OpenMP может быть так же просто, как запись:
#pragma omp parallel for
OpenMP полезен только для программирования с общей памятью, которое, если в вашем кластере не выполняется что-то вроде kerrighed означает, что параллельная версия, использующая OpenMP, будет одновременно работать не более чем на одном узле.
MPI основан на передаче сообщений и немного сложнее для начала.Преимущество заключается в том, что ваша программа может работать на нескольких узлах одновременно, передавая сообщения между ними по мере необходимости.
Учитывая, что вы сказали "для разных наборов данных", похоже, что ваша проблема может фактически попасть вкатегория «смущающая параллель», где при условии, что у вас есть более 100 наборов данных, вы можете просто настроить планировщик так, чтобы он запускал один набор данных на узел, пока все они не будут завершены, без необходимости изменять ваш код и почти в 100 раз быстреепросто используя один узел.
Например, если ваш кластер использует condor в качестве планировщика, вы можете отправить 1 задание на элемент данных в юниверс "vanilla", варьируя только строку "Arguments ="описание работы.(Есть другие способы сделать это для Кондора, которые могут быть более разумными, и есть также похожие вещи для крутящего момента, sge и т. Д.)