Програмне забезпечення для настільних ПК з ресурсами HPC для стискання номерів у кінцевому кінці


17

Наша робоча група виробляє настільний додаток, який імітує енергетичні показники будівлі. Це програма .NET, і коли користувач виконує багато моделей, вони можуть зайняти досить багато часу. Моделювання повністю паралельні, і у нас є дуже важливі в офісі обчислювальні ресурси HPC .

Одна з наших ідей - дозволити користувачам вивантажувати симуляції, які, як ми знаємо, будуть дуже довгими (хоча кожне окреме моделювання триває приблизно 30-120 секунд, запуск великої кількості моделювання може зайняти кілька днів). Хтось робив це раніше? Якщо так, чи використовували ви якісь бібліотеки, щоб полегшити роботу? Чи варто було докласти зусиль?

відредаговано, щоб додати:

Індивідуальні завдання для розвантаження моделювання були б

  • упаковка файлу (близько 5 Мб),
  • завантажуючи його на наші сервери,
  • декомпозиція пакету на окремі імітації (кожне займає приблизно 30-120 секунд і повністю паралелізується), кількість моделювання - це функція від кількості варіантів, обраних користувачем (ізоляція, орієнтація будівлі тощо) та найгірший вибір кожен можливий варіант призведе до приблизно 1E50 моделювання. Запуск від 100 до ~ 1E5 моделювання невідомо, але більшість користувачів буде працювати менше 10.
  • повторний збір завершених симуляцій та завантаження файлу, який зараз значно більший.

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

Цей додаток вже використовує .NET 4 і може розширюватись, щоб використовувати всі ядра, якими користувач (у наших верстатів для розробників є 8 ядер).


Мені не зовсім зрозуміло, для чого саме ви збираєтеся тут - чи завжди кінець HPC буде на ваших серверах чи інших виділених серверах? (Якщо так, це повинно зробити це набагато простіше, тому що, можливо, ви зможете зробити набагато більше на сервері.)
Aesin

@Aesin, кінець HPC буде на наших серверах, так. Існуюча програма та нова версія запускають моделювання на робочому столі користувачів. Я шукаю поради / рекомендації щодо того, як продумати наступну версію, щоб мати можливість використовувати HPC для великих користувачів.
Тангурена

Відповіді:


10

Ви можете розглянути можливість використання Condor: http://research.cs.wisc.edu/condor/ . Це може бути надмірним, залежно від того, про які ресурси HPC ви говорите і наскільки вони будуть змінюватися. Однак його досить легко розпочати, і він піклується про запуск незалежних робочих місць, відмовостійкість, баланс навантаження тощо.

Було б корисніше, якби ви були більш конкретними щодо окремих завдань (як довго, як асинхронно) та інтерфейс, який ви використовуєте для взаємодії (процес запуску, бібліотека тощо)

Метт


Я не впевнений, чи буде condor працювати з .net (Windows?), Але наша робоча група використовує condor в Linux, і я можу порекомендувати його для подання завдань +1
Себастьян

Condor може спілкуватися через файлову систему, тому не потрібно дотримуватися .NET. Він працює на Windows.
Метт Кнеплі

5

Якщо ви перебуваєте у світі .NET, чи переглядали ви багатопотокову підтримку в .NET 4; і асинхронні функції, які додаються до .NET 4.5?

Багатопотокове читання не допомагає завантажувати обробку на інші машини, але дозволяє краще використовувати багатоядерні ПК, якими ми користуємося в ці дні. 4.0 має в цьому плані кілька приємних особливостей.

4.5 наразі знаходиться в попередньому перегляді технологій - тому варто подивитися, чи допоможе це. У MSDN була стаття, в якій були представлені нові асинхронні функції протягом останнього місяця або близько того (жовтень чи листопад і, безумовно, не раніше вересня). Виглядало так, що ці функції висуваються як спосіб паралелізації традиційно менш паралельного коду, але в IIRC вони також включали деяку підтримку кількох серверів.


4

Відповідь залежить від того, що у вас є як сервер HPC. Питання стосується наявних ресурсів, доступних користувачам NREL. Існують кластери Linux та кластер Windows на основі сервера обчислювальних кластерів Windows.

  1. Щоб використовувати кластер Linux, автору потрібно переконатися, що програма моделювання працює на Mono (реалізація платформи .NET для Linux) та переконайтесь, що Mono встановлено на вузлах.

  2. Наступне питання - чи користувачі мають облікові записи на обчислювальних кластерах і чи можуть вони отримувати дані до вузлів. Найпростіший випадок - це єдина файлова система, доступна з локальних ПК та з вузлів.

    Я не впевнений, чи така файлова система доступна для користувачів NREL, тому буде задіяно деяке копіювання. Це вже ускладнює справи.

  3. Далі програма повинна мати можливість скласти сценарій опису завдань, подати його у відповідний кластер і запитувати систему черги щодо стану моделювання, поки завдання не вийде з черги.

  4. Нарешті, програма повинна мати можливість отримувати результати.

Все це можливо, хоч і не банально, і було б дуже специфічним для установки цієї конкретної лабораторії.

Комерційні програми від Ansys або MSC дозволяють користувачеві зберігати опис завдання моделювання, яке можна пізніше запустити в пакетному режимі на віддаленому кластері.

Більш загальним рішенням буде використання інфраструктури Grid, якщо вона є.

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

Це широко використовується, наприклад, в обчислювальній біології, де інструменти використовуються для складання робочих процесів моделювання, що складаються повністю із запитів веб-служб на обробку.

Зауважимо лише, що розвантаження обчислень на віддалені обчислювальні ресурси зазвичай використовується в таких додатках, як розпізнавання голосу Google для Android.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.