Курсовая работа: Використання функціонального підходу при програмуванні розподілених задач для кластеру на прикладі технології DryadLINQ

Для реалізації консольної програми обчислення інтегралу 1/х методом Монте-Карло на кластері WindowsHPC2008 з використанням DryadLINQ програма перед початком роботи генерує випадкові точки в певному діапазоні записує їх у декілька текстових файлів кожен з яких потім копіюється на відповідний вузол.

Розглянемо виконання роботи Dryad на прикладі запиту DryadLINQ

PartitionedTable<LineRecord> table = PartitionedTable. Get<LineRecord> (uri);

IQueryable<string> table1 = table

. Select (s => s. line)

. Where (s => (1/ (fun (s. Split (' ') [0]))) > fun (s. Split (' ') [1]));

double result = (1. 000000 * table1. Count () * (x2-x1) * (y2-y1)) /lenght;

Спочатку зчитується файл метаданих де вказується кількість та місце знаходження частин розподілених даних які попередньо були скопійовані на відповідні вузли. Далі представляється IQueryable<string> у вигляді PartitionedTable<string>. В запиті DryadLINQреалізується вибірка тих текстових рядків в яких функція 1/xвід першого числа більша за друге число. Тут використовується функція fun яка переводить stringу doubleта функція Split з простору System. Text що розділяє стрічку на частини між якими був знак пробілу. Це реалізується двома методами Select та Where. Перший серед всієї сукупності вхідних діних виділяє рядок, а другий аналізує чи цей рядок задовольняє нашим умовам. Після цього підраховується кількість обраних рядків за допомогою методу Count.

Під час виконання роботи Dryadна консолі провайдер Dryadвиводить наступне:

Рис. 2.2

Як видно з рисунка провайдер Dryadвиводить:

- шлях стандартної папки виводу

- місце знаходження файлу метаданих

- елементи кожного рівня виконавчого графа Dryad

- інформація про стан підключення до кластера та погодження роботи на ньому

- інформується чи робота виконується (running) чи вона поки що в черзі (queued)

Після завершення виконання роботи Dryadна кластері провайдер Dryadповертає оброблені дані до програми.

Дана програма обчислення інтегралу методом Монте-Карло була запущена на різній кількості вузлів: від одного до шести.

n

Рис. 2.3. Залежність часу виконання роботи Dryadвід кількості задіяних вузлів.

Висновки

В результаті зробленого аналізу підходів до розробки паралельних програм було обґрунтовано доцільність створення нового, який передбачає покладання фонової роботи по розпаралеленню на інструментальні засоби, а не на розробника. Серед існуючих парадигм програмування було обрано парадигму функціонального програмування як таку що відповідає висунутим критеріям.

Внаслідок аналізу інструментальних засобів для створення функціонально орієнтованих програм було обрано DryadLINQ.

Реалізована обчислювальна задача методом Монте-Карло дозволила сформувати концепцію використання функціонального підходу у програмуванні для реалізації паралельних обчислювальних задач.

Перелік посилань

1. Windows® HPC Server 2008 Resource Kit: // http://resourcekit. windowshpc.net/home.html

2. DryadLINQ - Microsoft Research Project Page // http://research. microsoft.com/en-us/projects/dryadlinq/

3. Microsoft® Connect – Dryad// http://connect. microsoft.com/Dryad

4. Dryad - Microsoft Research Project Page // http://research. microsoft.com/en-us/projects/dryad/

5. Dryad and DryadLINQ for Data Intensive Research // http://research. microsoft.com/en-us/collaboration/tools/dryad. aspx

6. Intel - HPC: архитектура суперкомпьютеров и разновидности // http://ru. intel.com/business/community/? automodule=blog&blogid=6276&showentry=888

7. Russian Software Developer Network// http://www.rsdn.ru/

8. Language-Integrated Query (LINQ) // http://msdn. microsoft.com/en-us/library/bb397926. aspx

9. LINQ:.net Language-Integrated Query // http://msdn. microsoft.com/en-us/library/bb308959. aspx

10. Dryad and DryadLINQ team blogs // http://blogs. msdn.com/b/dryad/

11. Meijer E., Barga R. Introduction to Dryad and DryadLINQ // http://channel9. msdn.com/posts/Charles/Expert-to-Expert-Erik-Roger-Barga-Introduction-to-Dryad-and-DryadLINQ/

12. Vert J. Data-Intensive Computing on Windows HPC Server with the DryadLINQ Framework // http://microsoftpdc.com/Sessions/SVR17

13. Podwysocki M. Dryad/DryadLINQ and Project Trident Released

14. // http://weblogs. asp.net/podwysocki/archive/2009/07/16/dryad-dryadlinq-and-project-trident-released. aspx

15. Campbell D. Dryad and DryadLINQ: Academic Accelerators for Parallel Data Analysis // http://blogs. msdn.com/b/msr_er/archive/2010/02. aspx

16. Colaci A. Dryad and DryadLINQ for Data Intensive Research // http://blogs. msdn.com/b/lchong/archive/2009/09/23/dryad-and-dryadlinq-for-data-intensive-research. aspx

17. Chong L. Scaling out PLINQ: DryadLINQ at PDC09 and Supercomputing09 // http://blogs. msdn.com/b/pfxteam/archive/2009/11/11/9921066. aspx

Додатки

Додаток А

Текст глобального файлу конфігурації

<DryadLinqConfig>

<ClusterName>hnode </ClusterName>

<Cluster name="hnode "

К-во Просмотров: 362
Бесплатно скачать Курсовая работа: Використання функціонального підходу при програмуванні розподілених задач для кластеру на прикладі технології DryadLINQ