Формат ввода метис-графика
Мне поручено использовать разделитель METIS, чтобы выполнить декомпозицию домена в качестве входной информации для MPI-версии нашего иерархического кода решетки Больцмана. Минимальный пример графа сетки выглядит следующим образом:
Из-за природы численного алгоритма "красные" вершины в 2 раза дороже в вычислительном отношении, чем "синие" вершины. За шаг по времени алгоритм выполняет два шага вычисления для "красного", затем один шаг вычисления для "синего". Пока все просто. Мой файл метис-графика будет выглядеть так:
12 17 010
2 2 5
2 1 3 5
2 2 4 6
2 3 6
1 1 2 6 7
1 3 4 5 8
1 5 8 9
1 6 7 10
1 7 10 11
1 8 9 12
1 9 12
1 10 11
Который производит разделение так:
Вычислительные веса сбалансированы, но количество "красных" и "синих" вершин в каждом разделе не равно. Вместо этого мне нужно разделение, которое выглядит примерно так:
Каждому разделу требуется одинаковое количество весов в сочетании с ограничением, что количество "красных" вершин составляет ок. то же самое в каждом разделе. То же самое для "синих" вершин. Я экспериментировал с более чем одним весом на вершину, но безрезультатно. Метис "мануал" не сильно помогает. Как должен выглядеть мой входной файл метисов, чтобы получить разделение на третьем изображении вместо второго?
Изменить: проблема решена... по крайней мере вопрос, как должен выглядеть входной файл метисов:
12 17 010 2
2 0 2 5
2 0 1 3 5
2 0 2 4 6
2 0 3 6
0 1 1 2 6 7
0 1 3 4 5 8
0 1 5 8 9
0 1 6 7 10
0 1 7 10 11
0 1 8 9 12
0 1 9 12
0 1 10 11
Добавление веса второй вершины к файлу кажется правильным способом сделать это. Проблемы, которые у меня были (и почему я изначально думал, что это неправильно) связаны с ошибкой в более поздних выпусках paraview. Я использовал версию pv>=5, которая дает странные результаты при применении порогового фильтра для проверки отдельных разделов, созданных metis. С более старыми версиями результаты выглядят хорошо. Плюс мне пришлось разрешить "несмежные" разделы во входном файле метисов.