Най-опасните разпределени изчисления. Разпределени изчисления: Кратко въведение в BOINC проекти

Вече повече от шестнадесет години всеки потребител има добра възможност да даде осъществим принос в развитието на науката. Не се изискват дарения и дори професионален интерес към избрания предмет на изследване. Важното е какви черти на характера има човек и колко съвременни компютри са на негово разположение. При успешна комбинация от тези фактори се появяват надеждни възли на разпределени изчислителни мрежи - един от най-мощните инструменти за компютърна обработка на данни.

Благодарение на съвместните усилия на обикновените потребители бяха направени много значими открития. Само през последните три години са открили 53 пулсара, а последните седем са открити съвсем наскоро - в края на август 2012 г. Резултатите от проведените изследвания се използват при разработването на лекарства за лечение на захарен диабет тип 2 , болести на Алцхаймер и Паркинсон и други сериозни заболявания. По материалите на извършената работа са публикувани стотици научни статии.

Суперкомпютри и разпределени мрежи

Мощните суперкомпютри са капка в морето. Няма толкова много коли, които са гордост на цели държави и заемат първите редове на рейтинга TOP 500, а няма достатъчно за всички. За да се получи достъп до суперкомпютър, първо трябва да се обоснове необходимостта от избраната задача и след това, ако аргументите са убедителни, да се изчака опашката и да има време да оптимизира кода за изпълнение на един вид архитектура на суперкомпютъра.

Тук мнозина са чували за програмата за разпределени изчисления BOINC, може би мнозина дори участват в нея. Тази статия е предназначена предимно за тези, които не са чували за този проект, но може да се интересуват от него. Тук ще дам кратки описания на най-популярните проекти.

BOINC е софтуерен пакет за бърза организация на разпределени изчисления. Състои се от сървърни и клиентски части. Първоначално разработен за най-големия доброволен компютърен проект - [защитен с имейл], но впоследствие разработчиците от Калифорнийския университет в Бъркли направиха платформата достъпна за проекти на трети страни. Днес BOINC е универсална платформа за проекти по математика, молекулярна биология, медицина, астрофизика и климатология. BOINC дава възможност на изследователите да се възползват от огромната изчислителна мощ на персоналните компютри от цял ​​свят.

Този процес може да бъде описан накратко, както следва:

В момента мрежата BOINC има около 300 хиляди активни участници, което дава общо над 9 милиона компютри и производителност от над 8 петафлопса (към момента на писането на тази статия).

[защитен с имейл]


Проектът има за цел да намери модел, който най-добре описва нашата Вселена, както и да намери коя група модели потвърждава текущите данни, получени от теоретични космологични изследвания и практически физически наблюдения.

Всички гледахме трилогията „Назад в бъдещето” и най-често си представяме учени в образа на Док – малко луди, хора, увлечени от някакви идеи. Понякога също искаме да се почувстваме като същия откривател, да проверим хипотеза, да докажем теорема, да построим машина на времето. Или поне тествайте тази кола.

Но да се върнем към реалността. Няма машина на времето. Космическите полети все още не са толкова далеч. Болестите не са победени. „Къде са тези учени? Каква е ползата, например от откритията на Айнщайн за мен, „мислят много хора, когато плават на моторен кораб по океана. Но корабът се ръководи от GPS, чиито спътници непрекъснато се движат над планетата и помагат да се определи къде точно се намира приемникът на Земята. И ако не беше работата на Айнщайн, нямаше да можем да използваме такава технология, защото при скоростите на спътниците вече се забелязват ефекти, които, ако не се вземат предвид, ще съборят всички GPS мерници. Това означава, че все още има опосредствана полза от науката. Можем ли да помогнем, ако не доктор, то наука?

Вероятно много от вас са чували за доброволци - хора, които доброволно правят нещо в името на нещо велико: защита на китове, засаждане на дървета, почистване на боклука, подпомагане на лекарите в борбата с болестите - както участват във ваксинацията на народите на Африка, така и тестване на тези лекарства върху себе си. Много хора искат да направят нещо голямо. Така фондацията на Бил и Мелинда Гейтс спонсорира различни здравни програми – превенция и лечение на туберкулоза, СПИН, борба с маларията и треската.
Представете си бъдещето след 10 години. При вас идва дете, което е видяло програма за грип на Discovery и пита: „Тате, знаеш ли, че преди хората се разболяват от грип всяка година, а наскоро учените откриха лек срещу него и сега не сме ли болни? А вие отговаряте: „Разбира се, че знам! Участвах в това."
Ясно е, това все още е фантазия, но би било хубаво за вас, нали?
Ами ако бихте могли да помогнете на науката и медицината, без да жертвате състояние като Бил Гейтс, без да проливате пот и кръв в доброволчески дейности и без да рискувате малария от ваксинираните? Казвате, че това е фантастично.

Проектът SETI за намиране на интелигентен извънземен живот е познат на мнозина. Мрежа от радиотелескопи сканира небето за необичайни сигнали. Необичайни са тези, които се повтарят, но които не могат да бъдат обяснени поради човешка дейност – радари, спътници, радиостанции – или поради естествени причини (пулсари, реликтово излъчване и др.). Докато търсят нещо интересно в този „шум“, те слушат честота след честота - сякаш въртите бавно настройката на радиоприемник и цялото това съскане между радиостанциите е шум - и във всяка честота се опитват да намерят нещо повтарящи се. Как? Всеки сигнал може да бъде начертан като функционална графика. Чрез сложни изчисления можете да „вземете“ формула, която би описала това - извършете трансформацията на Фурие за графиката. Това е невероятно трудно, защото идват много данни и всички те изискват дълги изчисления. Би било скъпо да се използват суперкомпютри за това.

През 1994 г. Дейвид Гиди предложи идеята за използване на обединена мрежа от доброволни компютри за изчисление, които са постоянно или периодично свързани към мрежата. Данните от телескопа се разбиват на хиляди независими шумове на определени честоти и се изпращат до компютрите на хора, които са се съгласили да помогнат в търсенето на извънземен разум.

Това пречи ли на нормалното използване на компютъра? Не - програми са написани да използват ресурси в неактивен режим. По същия начин, както скрийнсейвърът се появява на монитора. Когато потребителят отново започне да работи активно, например, стартира игра или конвертира видео, програмата „заспива“ и изчаква следващия свободен момент. Между другото, съвременните компютри често имат много процесори (ядра) и изпълнението на такива програми може да се извършва дори при използване на компютъра, така че потребителят да не забележи натоварването на машината. Клиентската програма периодично се свързва със сървъра, за да получи следващата порция данни за изчисления. След приключване на изчисленията, техните резултати се изпращат обратно.

Архитектурата, която е измислена по този начин, се нарича BOINC(англ. Отворена инфраструктура на Бъркли за мрежови изчисления) - отворена софтуерна платформа (Университет) на Бъркли за GRID изчисления). За да помогнете на науката, сега е достатъчно да изтеглите клиентската програма BOINC и да се свържете с един от проектите.

[защитен с имейл] ([защитен с имейл], FAH) е разпределен изчислителен проект за компютърна симулация на сгъването на протеинови молекули. Целта на този проект е да се разбере техниката и принципите на биохимичния процес на създаване (сгъване) и разрушаване (разгъване) на протеини. Това е необходимо за борба с болести като Алцхаймер, Паркинсон, диабет, склероза. В резултат на изчислителната помощ на доброволци в този проект имаше много симулации и на тяхна основа бяха публикувани много междинни научни статии. Това е най-големият от проектите за доброволно разпределени изчисления, като цялостната производителност на системите, участващи в него, е в състояние да се конкурира с производителността на най-мощните суперкомпютри на планетата.

[защитен с имейл]- проверете хипотезата на Айнщайн

[защитен с имейл]- проект, създаден за тестване на хипотезата на Айнщайн за гравитационните вълни - начина, по който гравитацията се разпространява във Вселената. За да направите това, проучете и съставете подробен атлас на „тежки“ обекти в космоса – неутронни звезди, черни дупки, пулсиращи звезди, за да разберете как могат да се разпространяват гравитационните вълни, ако съществуват, разбира се. Наблюденията и измерванията в рамките на този проект позволяват по-задълбочено разбиране и потвърждение (и може би в бъдеще - за опровергаване?) Общата теория на относителността (Помните ли GPS?), За да разберете с каква скорост се движат гравитационните вълни - със скоростта на светлината, за да се определят физическите свойства на тези хипотетични вълни... Освен това от 2009 г. част от капацитета на проекта и съответно част от изчисленията на доброволците са насочени към търсене на радиопулсари и други необичайни обекти във Вселената.

[защитен с имейл]- астрофизика

[защитен с имейл]Това е доброволен разпределен изчислителен проект в астрофизика, чиято цел е да изследва потоците от звездна материя в Млечния път и да компилира високопрецизни 3D динамични модели. Сега звездният поток на Стрелец е основно моделиран. Тя има нестабилна орбита и най-вероятно се е образувала в резултат на приближаването на галактика джудже към галактиката Млечния път.

World Community Grid – в помощ на IBM

Световната общностна мрежа (WCG) е доброволен разпределен компютърен проект от IBM и много от неговите подпроекти са базирани на него. Няколко от тези подпроекти провеждат изследвания върху рака и СПИН. Други моделират продукти за по-добро пречистване на питейната вода, грип и настинка. Решението на кои изчисления да се обърне приоритетно внимание се взема съвместно с водещи учени от различни страни.

PrimeGrid - Намиране на прости числа

PrimeGrid е доброволен разпределен компютърен проект, който се стреми да намери прости числа (делими на 1 и себе си) в различни форми. Някои са важни за тестване на хипотези в математиката, други за тестване на софтуер или криптография.

Всъщност има много проекти, в които можете да помогнете на науката, част от силата на вашия компютър. Нека изброим няколко интересни и разнообразни, буквално на един ред:
[защитен с имейл] - намиране на минималния брой семена, необходими за едно решение на пъзел;


Лайденска класика- числено решение на задачи на класическата механика;
Седемнадесет или Бюст- проверка на една от хипотезите на математиката;
Renderfarm- създаване на ферма за изобразяване за всеки - всеки може да покаже своите 3D модели, превръщайки ги в картина или видео с висока разделителна способност;
Енигма- Опит за дешифриране на част от прихванатите и все още неразшифровани съобщения от германците по време на Втората световна война;
[защитен с имейл] - проект, който позволява симулиране на поведението на снопове от частици в Големия адронен колайдер - тези данни се използват впоследствие при калибрирането на съоръжението;
[защитен с имейл] - проект за изчисляване на магнитните конфигурации на цилиндрични наноелементи, създаден от Константин Метлов от Донецкия физико-технически институт. Проектът решава проблемите на статиката, динамиката и термодинамиката за магнитни нано-елементи с различни форми.

Много често хора със същите хобита се обединяват в групи. Така е и с доброволните разпределени изчисления. Има много групи хора, които се обединяват на различни основания – един университет, една държава, точно като групата. Украйна има национален отбор, чийто уебсайт е distributed.org.ua. Сайтът разполага с форум, където се провеждат дискусии по различни теми и където можете да получите по-подробна информация за всеки проект. Подобни национални отбори има в Русия, Полша, Германия - в много страни.

За да стане по-интересно, хората организират състезания - те се измерват с това колко полезна работа са свършили и колко точки (кредити или калдъръми) са спечелили. Броят на точките зависи от производителността на компютъра, броя на участващите машини (можете да използвате няколко компютъра под едно и също име) и колко време компютърът може да прави изчисления. Някои проекти провеждат така наречените състезания или предизвикателства няколко пъти в годината – когато отборите се състезават: кой от отборите ще спечели най-много кредити за определен период от време.

„Недостатъкът“ на вашата такава научна помощ може да бъде увеличаващата се сметка за ток. Това е онази малка цена, благодарение на която вие, заедно с други доброволци, ще можете да победите болести, да решите сложни проблеми и да оформите карта на нашата Галактика. Може би ще попитате, възможно ли е да се правят пари от това? Не. Да, определено не. Това е доброволческа помощ. Безплатни роялти.

В това видео ще ви кажа как да се свържете с доброволен проект за разпределени изчисления.

Ако имате въпроси, задайте ги в коментарите. Благодарим ви, че споделихте статията в социалните медии. Всичко най-хубаво!

Сега, когато почти всеки човек у дома има персонален компютър, а някои дори имат няколко, е възможно да се извършват ефективни разпределени изчисления.

Относно процесора и ресурсите.

Нека помислим какво прави нашият компютър, когато го използваме? Сърцето на компютъра е процесор... Той е този, който извършва всички математически и логически операции.
В крайна сметка всяка компютърна игра, всеки филм е всички последователности от операции от смяна, добавяне и прехвърляне на отделни битове (това е най-малката информация в компютъра). Колкото повече операции може да извърши процесорът в секунда, толкова по-бърз е той. Почти всички компютърни игри използват 100% процесорни ресурси, т.е. процесорът дава максимална скорост на играта. Но нещата са различни с гледането на филми, редактирането на документи и т.н. Например, един филм не трябва да използва целия ресурс на процесора, той се нуждае само от толкова много от този „ресурс“, така че потребителят да не вижда „скокове“ и пробиви при гледане. На съвременните компютри гледането на филм използва само 10-15 процента от процесора. А редактирането на документи е още по-малко – 1-4 процента. Оказва се. че през повечето време процесорът не работи. И точно тази неизползвана част от неговото време и ресурс може да се използва за разпределени изчисления.

Какво представляват разпределените изчисления?

Грубо казано, това е процесът на разбиване на едно голямо изчисление, изискващо мощен компютър, на много малки фрагменти и предоставяне на тези фрагменти за обработка от много обикновени компютри. Програмата помага за реализирането на това. BOINC (Отворена инфраструктура на Беркли за мрежови изчисления- отворена система за разпределени изчисления в университета в Бъркли ( благодаря им за FreeBSD =)))
Когато стартирате BOINC на вашия компютър, се случва следното:

1. Вашият компютър изисква списък с инструкции от сървъра. Освен това инструкциите зависят от възможностите на вашия компютър. Например сървърът няма да издава инструкции, които изискват твърде много RAM от вашия компютър.
2. Вашият компютър изтегля програмата и данните за изчисления.
3. Вашият компютър започва да изчисли.
4. Вашият компютър генерира изходни файлове с изчисления.
5. Вашият компютър предава резултатите на главния сървър и изисква данни за ново изчисление. Цикълът се повтаря отново.

Освен това BOINC работи с минимален приоритет. Това означава, че той получава процесорните ресурси последен, т.е. ако никоя програма не се нуждае от тях. По този начин не влошава производителността на системата (нито подобрява =)).
За да ви запозная със системата BOINC, остава да кажете само едно:
Различни учени – изобретяващи нови лекарства за хора, изследване на болести, изследване на космоса в търсене на извънземен разум, изучаване на гравитационни вълни от далечни пулсари и други изследователи изискват немислимо (в мащаб на целия институт) скъпи изчислителни центрове за изчисления и обработка на данни. BOINC ви дава възможност да помогнете на изследователите да решат проблемите си.
Изтеглете BOINC и научете информация за проекти и постижения на boinc.berkeley.edu

В какви проекти можете да участвате?

  • Climateprediction.net: - Проучване на изменението на климата.
  • http://einstein.phys.uwm.edu/: Търсене на гравитационни импулси, излъчвани от пулсари.
  • http://lhcathome.cern.ch/: Подобрение на CERN LHC ускорител на частици

Възможни полезни резултати от използването на паралелни изчисления:

1) Увеличаване на скоростта на броене, тоест извършване на същото количество работа за по-малко време (интересно е преди всичко за задачи с ограничения във времето).

2) Увеличаване на пропускателната способност, тоест извършване на повече работа в същото време (интересно е преди всичко за задачи, съдържащи големи количества данни).

3) Увеличаване на мощността, тоест решаване на задачи с по-голям обем (интересно е преди всичко за задачи, при които моделите не са достатъчно подробни).

Посочени предимства можеда бъде недостижим едновременно, използвайки същия набор от методи и технологии.

Концепцията за паралелни изчисления означава преди всичко тяхната едновременност, т.е. едновременното използване на различни изчислителни устройства (процесори, ядра и др.) за тяхното изпълнение. Една и съща едновременност на изпълнение може да се използва по различни начини. Така например, 1) едно и също изчисление може да се извърши едновременно с части от един и същ набор от данни поотделно (например метеорологични проблеми, разпределени мрежи в транспортни проблеми, разпределени системи за управление като цяло); 2) различни изчисления могат да се извършват едновременно с един набор от данни (например проблемът за много тела в молекулярната динамика или в астрофизика); 3) различни изчисления могат да образуват конвейер, където всеки калкулатор получава данни на части, обработва ги и ги предава на следващия калкулатор (например вътрешното изпълнение на операции с реални числа в процесори).

За да могат изчисленията да се изпълняват паралелно/разпределени изобщо, те трябва да бъдат преведени във форма, подходяща за такова изпълнение - паралелизиране. Изборът на конкретен модел за паралелизиране зависи от естеството на задачата; скаларно изчислениеотделните части, които трябва да се изпълняват взаимно последователно, не подлежат на успоредяване.

История

През 1973 г. Джон Шох и Джон Хъп от Xerox PARC, Калифорния, написаха програма, която се изпълняваше през нощта в PARC LAN и принуждаваше работещите компютри да извършват изчисления.

През 1978 г. съветският математик Виктор Глушков работи върху проблема за разпределените изчисления по макро-тръбопроводи. Той предложи редица принципи за разпределение на работата между процесорите Шаблон: R / ref На базата на тези принципи той разработи компютъра EC-2701.

През януари 1996 г. стартира проектът GIMPS за намиране на прости числа на Мерсен, също използвайки компютри на обикновени потребители като доброволна компютърна мрежа.

На 28 януари 1997 г. стартира състезанието RSA Data Security за решаване на проблема с кракването чрез просто търсене на 56-битов ключ за криптиране на информация RC5. Благодарение на добрата техническа и организационна подготовка, проектът, организиран от общността с нестопанска цел distributed.net, бързо стана широко известен.

Започна на 17 май 1999 г [защитен с имейл]базирана на Grid и в началото на 2002 г. беше завършено разработването на отворената платформа на UC Berkeley BOINC (Berkeley Open Infrastructure for Network Computing), разработена от април 2000 г., първоначално за [защитен с имейл], но първият проект на платформата BOINC беше [защитен с имейл]стартира на 9 юни 2004 г.

Изчислително управление на работата

Проблемът за разпределението на различни изчислителни задачи в рамките на разпределена система се отнася до проблема за вземане на решения в условия на несигурност. Този проблем се разглежда в теорията на вземането на решения и в теорията на несигурността.

Разпределени операционни системи

Разпределена ОС, динамично и автоматично разпределяща работата между различни машини в системата за обработка, принуждава набор от мрежови машини да обработват информация паралелно. Потребителят на разпределена ОС, най-общо казано, няма информация за машината, на която се извършва работата му.

Разпределената ОС съществува като единна операционна система в изчислителна система. Всеки компютър в мрежа, работещ с разпределена ОС, изпълнява част от функциите на тази глобална ОС. Разпределената ОС обединява всички компютри в мрежа в смисъл, че работят в тясно сътрудничество помежду си, за да използват ефективно всички ресурси на компютърната мрежа.

В резултат на това мрежовата операционна система може да се разглежда като съвкупност от операционни системи за отделни компютри, които съставляват мрежа. Различните компютри в мрежата могат да работят с една и съща или различни операционни системи. Например, всички компютри в мрежата могат да работят с една и съща UNIX операционна система. По-реалистичен вариант е мрежа, която работи с различни операционни системи, например някои компютри работят с UNIX, някои работят с NetWare, а останалите работят с Windows NT и Windows 98. Всички тези операционни системи работят независимо една от друга в смисъл, че всяка от тях взема независими решения за създаване и прекратяване на собствени процеси и управление на локални ресурси. Но във всеки случай операционните системи на компютрите, работещи в мрежата, трябва да включват взаимно съгласуван набор от комуникационни протоколи за организиране на взаимодействието на процеси, изпълнявани на различни компютри в мрежата, и споделяне на ресурсите на тези компютри между потребителите на мрежата.

Ако операционната система на отделен компютър му позволява да работи в мрежата и може да предоставя своите ресурси за общо ползване и/или да използва ресурсите на други компютри в мрежата, тогава такава операционна система на отделен компютър се нарича още мрежова ОС.

По този начин терминът "мрежова операционна система" се използва в две значения: като набор от операционни системи за всички компютри в мрежата и като операционна система на отделен компютър, който може да работи в мрежата. От тази дефиниция следва, че такива операционни системи, като например Windows NT, NetWare, Solaris, HP-UX, са свързани в мрежа, тъй като всички те разполагат със средствата, които позволяват на техните потребители да работят в мрежата.

Връзки и бележки

В статията са използвани материали от Wikipedia.

Отворена литература

  • Паралелно и разпределено изчисление: числени методи / Д.П. Берцекас, J.N. Цициклис. - Prentice-Hall, 1989; Athena Scientific, 1997. - Режим на достъп:.]