Hpc summer school parallel extensions for visualization

Preview:

Citation preview

PARALLEL EXTENSIONS В ЗАДАЧАХ ВИЗУАЛИЗАЦИИ НАУЧНЫХ ДАННЫХHPC Summer School

Москва, 2009

ПРИЧИНЫ ИСПОЛЬЗОВАНИЯ ПАРАЛЛЕЛИЗМА В ЗАДАЧАХ ВИЗУАЛИЗАЦИИ

Большой объем данных для визуализации. Алгоритмы визуализации часто имеют

нелинейную сложность. Рост вычислительных возможностей

компьютеров за счет увеличения количества ядер процессора или процессоров.

ИСПОЛЬЗОВАНИЕ ПОТОКОВ SYSTEM.THREADING.THREAD

Старый подход .NET Framework к созданию параллельных программ.

Большое количество потоков создает нагрузку на систему и снижает ее производительность.

Нет диспетчера потоков. Плохая масштабируемость программы. Недостаточный набор средств

синхронизации потоков.

PARALLEL EXTENSIONS TO THE .NET FRAMEWORK

Новая удобная модель программирования параллельных приложений.

Хорошая масштабируемость программ через увеличение количества ядер процессора или процессоров.

Parallel LINQ – декларативный параллелизм.

Параллелизм циклов обработки данных. Параллелизм, основанный на задачах. Диспетчер задач.

PARALLEL EXTENSIONS:ОСНОВНЫЕ ВОЗМОЖНОСТИ

Параллельные циклы (Parallel.For, Parallel.Foreach)

Задачи (Task, Future<T>) Средства синхронизации (CountdownEvent, SpinLock)

Потокобезопасные структуры данных (ConcurrentQueue<T>, ConcurrentStack<T>, BlockingCollection<T>)

(см. примеры в Parallel Extensions.sln/Samples)

ВИЗУАЛИЗАЦИЯ POINTSET НА ОСНОВЕ DYNAMICDATADISPLAY

(см. пример в Parallel Extensions.sln/PointSet/PointSetApp)

АЛГОРИТМ ТАКСОНОМИИ FOREL

Выделяет сферические группы «близких» объектов.

ПАРАЛЛЕЛИЗАЦИЯ POINTSET

Проекты Parallel Extensions.sln/PointSet: PointSetClusteringApp: добавлена

кластеризация точек перед рендерингом. Содержит 2 варианта алгоритма FOREL – без предварительного разбиения и с разбиением.

PointSetClusteringAppfor: добавлен параллелизм цикла построения кластера (для FOREL без разбиения).

PointSetClusteringAppTPLSubDiv: добавлен параллелизм построения кластеров внутри областей разбиения.

СРАВНИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ

Циклы FOR

Полное время кластеризации

Rendering

PointSet с кластеризацией

6,2 с 6,3 с 1,0 с

Параллельный PointSet (2 ядра)

4,4 с 4,7 с 1,1 с

Параллельный PointSet (4 ядра)

3,0 с 3,4 с 1,1 с

Результаты даны для визуализации данных из файла Data\hpc_crop_area_x30.csv, содержащего 91,326 точек, расположенных на территории США.

Разрешение: 1280 x 1024.

ССЫЛКИ

Parallel Extensions to the .NET Framework: June 2008 CTP Часть .NET Framework 4.0 and the Microsoft

Visual Studio 2010 Optimize Managed Code For Multi-Core Machines

FOREL (алгоритм таксономии). DynamicDataDisplay (элемент управления

WPF для визуализации научных данных).

ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

Модифицировать реализацию алгоритма FOREL в проекте PointSetClusteringAppTPLSubDiv (файл ForelAlgorithmTPL.cs) таким образом, чтобы разбиение исходной области данных было адаптивным, т.е. каждая область, полученная в результате разбиения, содержала примерно одинаковое количество точек, и тем самым выровнять сложность отдельных заданий и повысить эффективность распараллеливания алгоритма.

Совет по реализации. После выполнения начального разбиения можно вычислить среднее количество точек на область, и внутри областей, содержащих слишком много точек, выполнить дополнительное разбиение.Для сохранения результатов задания можно ввести

дополнительное поле в класс ForelTask: ValuePoint[] TaskResult. Эти массивы после выделения

кластеров должны быть объединены в один массив.