Привіт Гість ( Вхід | Реєстрація )

> Теорія РО., Доступно чи на академічному рівні...
druid3
Jun 3 2009, 18:06
Пост #1


Так, я створив профіль!


Група: New Members
Повідомлень: 3
З нами з: 3-June 09
З: Kyiv
Користувач №: 1 061
Стать: Чол
Парк машин:
один потертий bf532...



Привіт саучаснєгі)))!

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

P.S.: до сирців BOINC будьласка не відсилайте, це все-одно як людині що почала цікавитися UNIX-way радити скачати Linux-kernel 2.6 і прискіпливо його продивитись -"там всьо єсть", мол)))...


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Відповідей(1 - 7)
Rilian
Jun 3 2009, 18:13
Пост #2


interstellar
**********

Група: Team member
Повідомлень: 17 003
З нами з: 22-February 06
З: Торонто
Користувач №: 184
Стать: НеСкажу
Free-DC_CPID
Парк машин:
ноут и кусок сервера



в 3 словах:

1) придумываешь что считать. желательно что-то полезное человечеству
2) качаешь и устанавливаешь БОИНК-сервер. настраиваешь
3) создаешь клиент (исходников с примерами полно)
4) считаешь

материалы на сайте боинка и сайтах проектов (в magnetism@home например исходники полностью открыты)


--------------------
(Show/Hide)


IPB Image

IPB Image

IPB Image
IPB Image

загальна статистика: BOINCstats * FreeDC команда: BOINC команда Ukraine

IPB Image

IPB Image
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Tamagoch
Jun 3 2009, 18:36
Пост #3


Мультікранчер
********

Група: Trusted Members
Повідомлень: 1 731
З нами з: 27-September 03
З: Бровари
Користувач №: 18
Стать: Чол
Free-DC_CPID
Парк машин:
Xeon 2690v2 (6x quiet mode), AMD Ryzen 5 3600 (6x no-HT), Intel i5 3rd gen (4x), а також все інше під рукою



druid3,
в мене диплом майже на цю тему був... як знайду щось, скину сюди


--------------------
(Show/Hide)

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
druid3
Jun 4 2009, 14:42
Пост #4


Так, я створив профіль!


Група: New Members
Повідомлень: 3
З нами з: 3-June 09
З: Kyiv
Користувач №: 1 061
Стать: Чол
Парк машин:
один потертий bf532...



(Rilian @ Jun 3 2009, 19:13) *

в 3 словах:

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

(Rilian @ Jun 3 2009, 19:13) *

1) придумываешь что считать. желательно что-то полезное человечеству

Що до корисності людсту, у мене є певні сумніви що щость з того що зараз розроблюється в світі щось взагалі корисне, а не просто укріплює владу тих чи інших фінансових домів, та це окрема розмова ph34r2.gif ...
А от що до формалізації "дуже корисних людству" задач стосовно РО - якраз це дуже не трівіальна річ. Зрозуміло що математика породжується теорією множин -> звязок(оператор) між скінченними множинами - матриця -> тому все зводиться до дій над матрицями )))... Та все це "в общєм і целам" - а от деб про таке почитать - класи задач які на данний час успішно формалізуються для вирішення методами РО. Чи там як розраховується(а головне - розподіляється) похибка, адже на дуже великих послідовностях і double float може дати що завгодно... Правда все це можна вичитати в роботах по кластеринм системам та суперкомп'ютерам. А стосовно РО там ще ряд питань - випадкова асинхронність задач, та таке інше ...

(Rilian @ Jun 3 2009, 19:13) *

2) качаешь и устанавливаешь БОИНК-сервер. настраиваешь

swoon.gif
(Rilian @ Jun 3 2009, 19:13) *

3) создаешь клиент (исходников с примерами полно)

(Rilian @ Jun 3 2009, 19:13) *

4) считаешь
ves001.gif
(Rilian @ Jun 3 2009, 19:13) *
:
материалы на сайте боинка и сайтах проектов (в magnetism@home например исходники полностью открыты)

idontno.gif Не знайшов я матеріалів там... Щож до відкритих сорців - то спробуйте вивчати UNIX за кодами Linux, зразу перестанете таке радити... До тогож мене цікавлять напрямки розвитку - той же Linux весь час еволюціонує, в напрямках яких ніяк не вичитати в попередніх версіях. Для тогож і шукають люди теоретичні матеріали - що б знати куди рухатись, теж цифрове радіо було повністью пропрацьоване ще в 1960-х та зайшовши тоді в магазин купити можна було лише лампову радіолу wink2.gif ...

(Tamagoch @ Jun 3 2009, 19:36) *

druid3,
в мене диплом майже на цю тему був... як знайду щось, скину сюди

Був би вельми вдячний! thumbsup.gif


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Rilian
Jun 4 2009, 14:53
Пост #5


interstellar
**********

Група: Team member
Повідомлень: 17 003
З нами з: 22-February 06
З: Торонто
Користувач №: 184
Стать: НеСкажу
Free-DC_CPID
Парк машин:
ноут и кусок сервера



Ок. Я недавно устанавливал и настраивал БОИНК сервер. Могу написать краткий ман и ссылки на доки по которым настраивал. Там сложнолсть тока с питоновскими скриптами. пришлось руками коече допиливать

я остановился на этапе генерацииВЮ

клиента написал (оч примитивного) на С

пс: у меня щя диплом и сессия и госы поэтому быстро все помочь не обещаю. ну, как всегда


--------------------
(Show/Hide)


IPB Image

IPB Image

IPB Image
IPB Image

загальна статистика: BOINCstats * FreeDC команда: BOINC команда Ukraine

IPB Image

IPB Image
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Tamagoch
Jun 4 2009, 15:00
Пост #6


Мультікранчер
********

Група: Trusted Members
Повідомлень: 1 731
З нами з: 27-September 03
З: Бровари
Користувач №: 18
Стать: Чол
Free-DC_CPID
Парк машин:
Xeon 2690v2 (6x quiet mode), AMD Ryzen 5 3600 (6x no-HT), Intel i5 3rd gen (4x), а також все інше під рукою



сподіваюся, наведені уривки будуть "по темі" wink.gif

Класифікація архітектур паралельної обробки даних

У 1966 р. М.Флінном (Flynn) був запропонований надзвичайно зручний підхід до класифікації архітектури обчислювальних систем. У його основу було покладене поняття потоку, під яким розуміється послідовність елементів, команд або даних, що обробляється процесором. Відповідна система класифікації заснована на розгляді числа потоків інструкцій і потоків даних і описує чотири архітектурні класи:
  • SISD = Single Instruction Single Data
  • MISD = Multiple Instruction Single Data
  • SIMD = Single Instruction Multiple Data
  • MIMD = Multiple Instruction Multiple Data
SISD (single instruction stream / single data stream) – одиночний потік команд і одиночний потік даних. До цього класу відносяться послідовні комп'ютерні системи, які мають один центральний процесор, здатний обробляти тільки один потік послідовно виконуваних інструкцій. В даний час практично всі високопродуктивні системи мають більше одного центрального процесора, проте кожний з них виконує незв'язані потоки інструкцій, що робить такі системи комплексами SISD-систем, що діють на різних просторах даних. Для збільшення швидкості обробки команд і швидкості виконання арифметичних операцій може застосовуватися конвейєрна обробка. У разі векторних систем векторний потік даних слід розглядати як потік з одиночних неділимих векторів. Прикладами комп'ютерів з архітектурою SISD можуть служити більшість робочих станцій Compaq, Hewlett-Packard і Sun Microsystems.
MISD (multiple instruction stream / single data stream) – множинний потік команд і одиночний потік даних. Теоретично в цьому типі машин безліч інструкцій повинна виконуватися над єдиним потоком даних. Дотепер жодної реальної машини, що потрапляє в даний клас, створено не було. Як аналог роботи такої системи, мабуть, можна розглядати роботу банку. З будь-якого терміналу можна подати команду і щось зробити з наявним банком даних. Оскільки база даних одна, а команд багато, ми маємо справу з множинним потоком команд і одиночним потоком даних.
SIMD (single instruction stream / multiple data stream) – одиночний потік команд і множинний потік даних. Ці системи звичайно мають велику кількість процесорів, від 1024 до 16384, які можуть виконувати одну і ту ж інструкцію щодо різних даних в жорсткій конфігурації. Єдина інструкція паралельно виконується над багатьма елементами даних. Прикладами SIMD-машин є системи CPP DAP, Gamma II і Quadrics Apemille. Іншим підкласом SIMD-систем є векторні комп'ютери. Векторні комп'ютери маніпулюють масивами схожих даних подібно до того, як скалярні машини обробляють окремі елементи таких масивів. Це робиться за рахунок використання спеціально сконструйованих векторних центральних процесорів. Коли дані обробляються за допомогою векторних модулів, результати можуть бути видані на один, два або три такти частотогенератора (такт частотогенератора є основним тимчасовим параметром системи). При роботі у векторному режимі векторні процесори обробляють дані практично паралельно, що робить їх у декілька разів швидшими, ніж при роботі в скалярному режимі. Прикладами систем подібного типа є, наприклад, комп'ютери Hitachi S3600.
MIMD (multiple instruction stream / multiple data stream) – множинний потік команд і множинний потік даних. Ці машини паралельно виконують декілька потоків інструкцій над різними потоками даних. На відміну від згаданих вище багатопроцесорних SISD-машин, команди і дані зв'язані, тому що вони представляють різні частини одного і того ж завдання. Наприклад, MIMD-системи можуть паралельно виконувати безліч підзадач з метою скорочення часу виконання основного завдання. Велика різноманітність потрапляючих в даний клас систем робить класифікацію Флінна не повністю адекватної. Дійсно, і чотирипроцесорний SX-5 компанії NEC, і тисячапроцесорний Cray T3E потрапляють в цей клас. Це примушує використовувати інший підхід до класифікації, інакше що описує класи комп'ютерних систем. Основна ідея такого підходу може полягати, наприклад, в наступному. Вважатимемо, що множинний потік команд може бути оброблений двома способами: або одним конвейєрним пристроєм обробки, що працює в режимі розділення часу для окремих потоків, або кожен потік обробляється своїм власним пристроєм. Перша можливість використовується в MIMD-комп'ютерах, які звичайно називають конвейєрними або векторними, друга – в паралельних комп'ютерах. У основі векторних комп'ютерів лежить концепція конвейєризації, тобто явної сегментації арифметичного пристрою на окремі частини, кожна з яких виконує свою підзадачу для пари операндів. У основі паралельного комп'ютера лежить ідея використання для вирішення одного завдання декількох процесорів, що працюють спільно, причому процесори можуть бути як скалярними, так і векторними.
Класифікація архітектури обчислювальних систем потрібна для того, щоб зрозуміти особливості роботи тієї або іншої архітектури, але вона не є достатньо детальною, щоб на неї можна було спиратися при створенні БОС, тому слід вводити детальнішу класифікацію, яка пов'язана з різною архітектурою ЕОМ і з використовуваним устаткуванням.

а до якої архітектури за цією класифікацією ви вважаєте можно віднести розподілені обчислення? wink.gif


--------------------
(Show/Hide)

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Tamagoch
Jun 4 2009, 15:13
Пост #7


Мультікранчер
********

Група: Trusted Members
Повідомлень: 1 731
З нами з: 27-September 03
З: Бровари
Користувач №: 18
Стать: Чол
Free-DC_CPID
Парк машин:
Xeon 2690v2 (6x quiet mode), AMD Ryzen 5 3600 (6x no-HT), Intel i5 3rd gen (4x), а також все інше під рукою



ще одне:
Проблеми паралельного програмування

В даний час існують два основні підходи до розпаралелювання обчислень. Це паралелізм даних і паралелізм завдань. У англомовній літературі існують відповідні терміни – data parallel і message passing. В основі обох підходів полягає розподіл обчислювальної роботи по доступних користувачеві процесорах паралельного комп'ютера. При цьому доводиться вирішувати різноманітні проблеми. Перш за все, це достатньо рівномірне завантаження процесорів, оскільки якщо основна обчислювальна робота лягатиме на один з процесорів, ми приходимо до випадку звичайних послідовних обчислень і тоді ніякого виграшу за рахунок розпаралелювання завдання не буде. Збалансована робота процесорів – це перша проблема, яку слід вирішити при організації паралельних обчислень. Інша і не менш важлива проблема – швидкість обміну інформацією між процесорами. Якщо обчислення виконуються на високопродуктивних процесорах, завантаження яких достатньо рівномірна, але швидкість обміну даними низька, основна частина часу витрачатиметься даремно, на очікування інформації, необхідної для подальшої роботи даного процесора. Дані парадигми програмування розрізняються методами рішення цих двох основних проблем. Розберемо детальніше паралелізм даних і паралелізм завдань.

Основна ідея підходу, заснованого на паралелізмі даних, полягає в тому, що одна операція виконується відразу над всіма елементами масиву даних. Різні фрагменти такого масиву обробляються на векторному процесорі або на різних процесорах паралельної машини. Розподілом даних між процесорами займається програма. Векторизація або розпаралелювання в цьому випадку найчастіше виконується вже на етапі компіляції - перекладу початкового тексту програми в машинні команди. Роль програміста в цьому випадку звичайно зводиться до завдання опцій векторної або паралельної оптимізації компілятору, директив паралельної компіляції, використанню спеціалізованих мов для паралельних обчислень. Найбільш поширеними мовами для паралельних обчислень є високопродуктивний ФОРТРАН (High Performance FORTRAN) і паралельні версії мови C (це, наприклад C*).
Детальніший опис даного підходу до розпаралелювання містить вказівку на наступні його основні особливості:
  1. Обробкою даних управляє одна програма.
  2. Простір імен є глобальним, тобто для програміста існує одна єдина пам'ять, а деталі структури даних, доступу до пам'яті і міжпроцесорного обміну даними від нього приховані.
  3. Слабка синхронізація обчислень на паралельних процесорах, тобто виконання команд на різних процесорах відбувається, як правило, незалежно і лише лише іноді проводиться узгодження виконання циклів або інших програмних конструкцій – їх синхронізація. Кожен процесор виконує один і той же фрагмент програми, але немає гарантії, що в заданий момент часу на всіх процесорах виконується одна і та ж машинна команда.
  4. Паралельні операції над елементами масиву виконуються одночасно на всіх доступних даній програмі процесорах.
    Таким чином, в рамках даного підходу від програміста не вимагається великих зусиль по векторизації або розпаралелюванню обчислень. Навіть при програмуванні складних обчислювальних алгоритмів можна використовувати бібліотеки підпрограм, спеціально розроблених з урахуванням конкретної архітектури комп'ютера і оптимізованих для цієї архітектури.
Підхід, заснований на паралелізмі даних, базується на використанні при розробці програм базового набору операцій:
  1. операції управління даними;
  2. операції над масивами в цілому і їх фрагментами;
  3. умовні операції;
  4. операції приведення;
  5. операції зрушення;
  6. операції сканування;
  7. операції, пов'язані з пересилкою даних.
Розглянемо ці базові набори операцій.
Управління даними. У певних ситуаціях виникає необхідність в управлінні розподілом даних між процесорами. Це може потрібно, наприклад, для забезпечення рівномірного завантаження процесорів. Чим більш рівномірно завантажені роботою процесори, тим більше ефективною буде робота комп'ютера.
Операції над масивами. Аргументами таких операцій є масиви в цілому або їх фрагменти (перетини), при цьому дана операція застосовується одночасно (паралельно) до всіх елементів масиву. Прикладами операцій такого типа є обчислення поелементної суми масивів, множення елементів масиву на скалярний або векторний множник і т.д. Операції можуть бути і складнішими, наприклад, обчислення функцій від масиву.
Умовні операції. Ці операції можуть виконуватися лише над тими елементами масиву, які задовольняють якійсь певній умові. У сіткових методах це може бути парний або непарний номер рядка (стовпця) сітки або нерівність нулю елементів матриці.
Операції приведення. Операції приведення застосовуються до всіх елементів масиву (або його перетини), а результатом є одне єдине значення, наприклад, сума елементів масиву або максимальне значення його елементів.
Операції зсуву. Для ефективної реалізації деяких паралельних алгоритмів потрібні операції зсуву масивів. Прикладами служать алгоритми обробки зображень, звичайно-різницеві алгоритми.
Операції сканування. Операції сканування ще називаються префіксними/суфіксними операціями. Префіксна операція, наприклад, підсумовування, виконується таким чином. Елементи масиву підсумовуються послідовно, а результат чергового підсумовування заноситься в черговий осередок нового, результуючого масиву, причому номер цього осередку співпадає з числом підсумованих елементів початкового масиву.
Операції пересилання даних. Це, наприклад, операції пересилання даних між масивами різної форми (тобто що мають різну розмірність і різну протяжність по кожному вимірюванню).
При програмуванні на основі паралелізму даних часто використовуються спеціалізовані мови – CM FORTRAN C*, FORTRAN+, MPP FORTRAN, Vienna FORTRAN, а також HIGH PERFORMANCE FORTRAN (HPF). HPF заснований на мові програмування ФОРТРАН 90, що пов'язано з наявністю в останньому зручних операцій над масивами.

Стиль програмування, заснований на паралелізмі завдань, має на увазі, що обчислювальне завдання розбивається на декілька щодо самостійних підзадач і кожен процесор завантажується своїм власним підзавданням. Комп'ютер при цьому є MIMD-машиною. Абревіатура MIMD позначає у відомій класифікації архітектури ЕОМ комп'ютер, що виконує одночасно безліч різних операцій над множиною, взагалі кажучи, різних і різнотипних даних. Для кожної підзадачі пишеться своя власна програма на звичайній мові програмування, звичайно це ФОРТРАН або С. Чем більше підзадач, тим більше число процесорів можна використовувати, тим більшої ефективності можна добитися. Важливо те, що всі ці програми повинні обмінюватися результатами своєї роботи, практично такий обмін здійснюється викликом процедур спеціалізованої бібліотеки. Програміст при цьому може контролювати розподіл даних між процесорами і підзадачами і обмін даними. Очевидно, що в цьому випадку потрібна певна робота для того, щоб забезпечити ефективне сумісне виконання різних програм. В порівнянні з підходом, заснованим на паралелізмі даних, даний підхід більш трудомісткий, з ним пов'язані наступні проблеми:
  • підвищена трудомісткість розробки програми і її відладки;
  • на програміста лягає вся відповідальність за рівномірне завантаження процесорів паралельного комп'ютера;
  • програмісту доводиться мінімізувати обмін даними між завданнями, оскільки пересилка даних – найбільш "часомісткий" процес;
  • підвищена небезпека виникнення тупикових ситуацій, коли відправлена однією програмою посилка з даними не приходить до місця призначення.
Привабливими особливостями даного підходу є велика гнучкість і велика свобода, що надається програмісту в розробці програми, що ефективно використовує ресурси паралельного комп'ютера і, як наслідок, можливість досягнення максимальної швидкодії. Прикладами спеціалізованих бібліотек є бібліотеки MPI (Message Passing Interface) і PVM (Parallel Virtual Machines). Ці бібліотеки є вільно поширюваними і існують в початкових кодах. Бібліотека MPI розроблена в Аргоннськой національній лабораторії (США), а PVM – розробка Окріджськой національної лабораторії, університетів штату Теннесі і Еморі (Атланта).

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


--------------------
(Show/Hide)

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Death
Jun 4 2009, 16:37
Пост #8


<script ///>
**********

Група: Moderators
Повідомлень: 6 371
З нами з: 5-November 03
З: Kyiv
Користувач №: 26
Стать: НеСкажу
Free-DC_CPID
Парк машин:
гидропарк
jabber:deadjdona@gmail.com



больше почитать можно по ключевым словам
grid computing
cloud computing

тучки это коммерческие приложения.
гриды это универовские бесплатные.



--------------------
wbr, Me. Dead J. Dona OGR-27
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Користувачів переглядають дану тему (1 Гостей і 0 Прихованих Користувачів)
0 Користувачів:

 



- Lo-Fi Версія Поточний час: 21st June 2024 - 16:11