Использование многопроцессорных вычислительных систем является одним из важнейших путей повышения скорости решения сложных задач. В данной работе представлено описание опыта разработки программного обеспечения для организации научных исследований и решения учебных задач с применением технологий распараллеливания вычислений. Рассматриваются подходы к организации распараллеливания вычислений с применением многопроцессорной системы с общей памятью для задачи определения численного решения системы линейных уравнений с трехдиагональной матрицей коэффициентов, возникающей при решении краевой задачи для дифференциального уравнения в частных производных параболического типа, уравнения теплопроводности. Для численного решения уравнения теплопроводности в двумерном случае использована конечно-разностная схема переменных направлений. Для реализации метода трехдиагональной прогонки применяются последовательный и параллельные алгоритмы (двухпоточный алгоритм встречной прогонки, многопоточный вариант горизонтально блочной прогонки), ориентированные на выполнение в вычислительных системах с общей памятью. Для распараллеливания вычислений использованы две технологии организации параллельных вычислений для вычислительных устройств с общей памятью: на основе технологии OpenMP, в рамках которой обслуживание процесса распараллеливания и балансировки нагрузки выполнялось средствами среды компиляции программы, а также средствами из библиотеки .NET, позволяющими использовать ручное управление процессами распараллеливания потоков. В качестве оценки эффективности описываемого подхода приведено время расчета с применением последовательного и параллельных алгоритмов в зависимости от размера задачи и количества используемых потоков. Сравнение рассматриваемых алгоритмов распараллеливания и технологий реализации выполняется на основе анализа получаемого ускорения. Показано, что общее время вычислений при распараллеливании на Thread-потоках оказалась в несколько раз больше, чем на OpenMP-потоках, а ускорение расчетов меньше, соответственно. Разработано приложение, позволяющее в реальном времени с использование технологий параллельных расчетов получать визуальный результат моделирования процесса распространения температуры в исследуемой области.
展开▼