Задание: Задача о вершинном покрытии
Часть 1. Разработайте переборный алгоритм для задания с целью выполнения на многопроцессорном (многоядерном) компьютере. Рекомендуется выполнить распараллеливание таким образом, чтобы синхронизация потоков не потребовалась или была минимальной.
Язык: С++
Использовать технологию OpenMP.
Напишите программу, реализующую данный алгоритм. Протестируйте её работу для данных различного размера на компьютере, имеющем не менее 4 процессоров (ядер), используя 1, 2, …, 8 потоков выполнения.
Часть 2. Модифицируйте разработанную в первом задании программу для возможности распределённого выполнения на вычислительном кластере. При этом должна сохраниться возможность её многопоточного выполнения на каждом узле кластера.
Использовать технологию MPI.
Протестируйте работу программы на кластере с разным числом узлов (минимум 2 узла, рекомендуется 4).