Пређи на садржај

Кластер рачунари

С Википедије, слободне енциклопедије
НАСА - Силикон графикс кластер
Техничар који ради на великом Linux кластеру на Chemnitz University of Technology, Germany
Sun Microsystems Solaris Cluster

Кластер рачунари се састоје од скупа слабо или чврсто повезаних рачунара који раде заједно, тако да се у многим аспектима они могу посматрати као један систем.

Компененте кластера су обично међусобно повезане брзим локалним мрежама, са сваким чвором (рачунар коришћен као сервер) који извршава своју инстанцу оперативног система. Кластер рачунари су настали као резултат конвенције бројних рачунарских трендова, укључујући доступност јефтиних микропроцесора.

Кластери су обично распоређени да побољшају перформансе и доступност преко једног рачунара, и обично су много исплативији него појединачни рачунари упоредиве брзине и доступности.[1]

Кластер рачунари имају широки спектар примене и развоја, у распону од малих пословних кластера са неколицином чворова до неких најбржих суперкомјутера на свету, као што је IBM-ов Sequoia.[2]

Једноставан, направљен код куће Beowulf кластер.

Основни концепти

[уреди | уреди извор]

Жеља да се добије више рачунарске снаге и боља поузданост помоћу организовања бројних јефтиних комерцијалних, из продавнице, рачунара, довела је до разних архитектура у конфигурација.

Приступ рачунарском груписању обично (али не увек) повезује више лако доступних рачунарских чворова (нпр. персонални рачунари се користе као сервери) путем брзе локалне мреже.[3] Активности компјутерских чворова су организовани од стране "clustering middleware", софтверског слоја који се налази на врху чворова и омогућава корисницима да третирају кластер као једану велику кохензивну рачунарску јединицу, нпр. преко једног концепта система слика.[3]

Груписање рачунара ослања се на централизовани управљачки приступ који чини чворове доступним као усаглашени дељени сервери. То се разликује од других приступа, као што су peer to peer или grid рачунари који такође користе доста чворова, али са много више дистрибутивне природе.[3]

Кластер рачунар може бити једноставни двочворни систем који само повезује два персонална рачунара, или може бити веома брз суперкомпјутер. Основни приступ изградњи кластера је да од Beowulf кластера, који може бити изграђен са неколико персоналних рачунара, да се произведе исплатива алтернатива за традиционалне рачунаре високих перформанси. Рани пројекат који је показао одрживост концепта био је 133 nodes Stone Soupercomputer.[4] Поризвођачи су користили Linux, the Parallel Virtual Machine скуп алата и Message Passing Interface библиотеку за постизање високих перформанси за релативно ниску цену.[5]

Иако се кластер може састојати од само неколико персоналних рачунара повезаних простом мрежом, кластер архитектура се такође може користити за постизање веома високих перформанси. TOP500 организациони полугодишњи лист од 500 најбржих [Суперрачунар|суперрачунара]] често укључује многе кластере, нпр. најбржа машина на свету у 2011. години је био К рачунар који има дистрибутивну меморију, кластер архитектуру.[6][7]

Историја

[уреди | уреди извор]
VAX 11/780, c. 1977

Greg Pfister је изјавио да кластере није измислио ниједан конкретан произвођач, него купци који нису могли да сместе сав свој рад на један рачунар, или им је била потребна резервна копија.[8] Pfister-ове процене датирају негде 1960. године. Формалну инжињерску основу кластер рачунара као средства које ради паралелан рад било које врсте је вероватно измислио Gene Amdahl из IBM-а, који је 1967. године објавио, посматрајући оно што је дошло, као исконски папир паралелног процесирања: Amdahl's закон.

Историја раних компјутерских кластера је више или мање директно повезана са историјом раних мрежа, како је један од примарних мотива за развој мреже био повезивање рачунарских ресурса, и стварање de facto кластер рачунара.

Први комерцијални кластер производ био је ARCnet, развијен од Datapoint 1977. године. Груписање само по себи није баш кренуло док Digital Equipment Corporation није представио свој VAXcluster производ 1984. године за VAX/VMS оперативни систем. ARCnet и VAXcluster производи не само да су подржавали паралелно рачунање, већ и поделили системе датотека и периферне уређаје. Идеја је била да се обезбеди предност паралелног процесирања, задржавајући поузданост и јединственост података. Два друга вредна пажње рана комерцијална кластера су били Tandem Himalayan (око 1994 високо-доступан производ) и IBM S/390 Parallel Sysplex (такође око 1994, пре свега за пословну употребу).

У истом временском оквиру, док су кластер рачунари користили паралелизам изван рачунара на робној мрежи, суперкомпјутери су почели да их користе у оквиру истог рачунара. Након успеха CDC 6600 1964, Cray 1 је био испоручен 1976. године, и увео је интерни паралелизам преко вектора обраде.[9] Док рани суперкомпјутери искључују кластере и ослањају се на дељену меморију, у исто време неки од најбржих суперкомпјутера (нпр. К компјутер) су се ослањали на архитектуру кластера.

Атрибути кластера

[уреди | уреди извор]

Кластер рачунари могу бити конфигурисани за различите намене, од општих пословних намена, као што је подршка веб-сервера, до нумеричко интензивних научних прорачуна. У сваком случају, кластер може да користи високо-доступан приступ. Треба имати на уму да атрибути описани у наставку нису ексклузивни и „кластер рачунар“ може користити високо-доступан приступ, итд.

Кластер са балансираним оптерећењем са два сервера и 4 корисничке станице

"Баланс-учитавања“ кластера су конфигурације у којима кластер-чворови деле рачунарски посао да би се обезбедиле свеукупне перформансе. На пример, веб-сервер кластер може доделити различите упите на различите чворове, тако да укупно време одзива буде оптимизовано.[10] Међутим, приступ оптерећења-балансирања може значајно варирати међу апликацијама, на пример кластер високих перформанси коришћен за научне прорачуне би био другачије уравнотежен са другим алгоритмима од веб-сервер кластера, који можда користи једноставан round-robin метод додељивањем сваког новог захтева другом чвору.[10]

"Кластер рачунари“ се користе за интензивно израчунавање, пре него за руковања УИ-оријентисаним операцијама, као што су веб сервиси или базе података.[11] На пример, кластер рачунари могу подржавати компјутерску симулацију судара аутомобила или времена. Врло чврсто повезани кластер рачунари су дизајнирани за рад који може да приђе "суперрачунарима“.

"Високо-доступни кластери“ (познати и као failover кластери, или HA кластери) побољшавају доступност кластер приступа. Они раде тако што имају сувишне чворове, који се користе за пружање услуга када компоненте система откажу. HA кластер имплементира покушај да се користи редудантност кластер компененти за елиминацију квара једног чвора. Постоје комерцијалне имплементације Високо-Доступних кластера за многе оперативне системе. Linux-HA пројекат је један који је користио бесплатни софтвер HA пакета за Linux оперативни систем.

Предности

[уреди | уреди извор]

Ниска цена: Купци могу елиминисати трошкове и сложеност набавке, подешавањем и руковањем HPC кластера са ниском, pay-as-you-go ценом, Даље, трошкови могу да се оптимизују усклаћивањем једним од неколико ценовних модела: On Demand, Reserved or Spot Instances.

Еластичност: Могу да се додају или уклоне рачунарски ресурси да би се задовољила величина и временски захтеви за дати обим посла.

Покретање послова било када и било где: Може се покренути рачунање послова који користе једноставни APIs или управљање алатима и аутоматизација токова посла за максималну ефикасност и скалабилност. Може да се повећа брзина иновације приступањем рачунарских ресурса у минуту уместо трошења времена у редовима.

Дизајн и конфигурација

[уреди | уреди извор]

Једно од појединости у дизајнирању кластера је колико чврсто могу бити повезани индивидуални чворови. На пример, посао за један рачунар може захтевати честе комуникације међу чворовима: ово подразумева да кластер дели наменску мрежу, густо лоцирану, а вероватно има хомогене чворове. Друга крајност је где рачунарски посао користи један или више чворова, и треба мало или нимало комуникације међу чворовима, што је приближавање grid-а рачунару.

Типична Beowulf конфигурација

У Beowulf систему, програми апликација никаде не виде рачунарске чворове (зову се и рачунарски робови), већ су у интеракцији само са „Мастером“ који је одређени рачунар који руководи распоређивањем и управљањем робовима.[11] У типичној имплементацији Мастер има два мрежна интерфојса, један који комуницира са приватном Beowulf мрежом за робове, и други за општу намену мреже организације.[11] Роб рачунари обично имају своју верзију истог оперативног система, и локалну меморију и простор на диску. Међутим, приватне роб мреже могу имати велику и подељену серверску датотеку која складишти глобално постојане податке, приступањем робова када је потребно.[11]

Насупрот томе, посебна намена 144 чворног DEGIMA кластера је подешеност да ради астрофизичне N-body симулације коришћењем Multiple-Walk паралелног treecode-а, пре него општа намена научних израчунавања.[12]

Због све веће снаге рачунања у свкој новој генерацији играчких конзола, нова употреба се појавила где су оне промениле сврху у High-performance computing (HPC) кластере. Неки примери играчке конзоле кластера су Sony PlayStation кластери и Microsoft Xbox кластери. Други пример потрошачких играчких производа је Nvidia Tesla Personal Supercomputer радна станица, која користи више процесорских чипова са графичким акцелераторима.

Рачунарски кластери су се кроз историју кретали на физички одвојеним рачунарима са истим оперативним системом. Са појавом виртуализације, кластер чворови могу радити на физички одвојеним рачунарима са различитим оперативним системима, који су горе обојени са виртуелним слојем, да изгледају слично. Кластер такође може бити виртуелизован на различите конфигурације како се одвија одржавање. Пример имплементације је Xen као виртуелизација управљања са Linux-HA.[13]

Дељење података и комуникација

[уреди | уреди извор]

Дељење података

[уреди | уреди извор]
Nehalem кластер

Како су се кластер рачунари појавили током 1980. година, тако су се појавили и суперкомпјутери. Један од елемената који је разликовао три класе у то време био је тај да су се рани суперкомпјуери ослањали на дељену меморију. Данас кластери обично не користе физички подељену меморију, док су их многе суперкомпјутерске архитектуре такође напустиле. Међутим, употреба система кластер датотека је неопходна у савременим рачунарским кластерима. Пример укључује IBM General Parallel File System, Microsoft's Cluster Shared Volumes или the Oracle Cluster File System.

Преношење порука и комуникација

[уреди | уреди извор]

Два широко коришћена приступа за комуникацију измећу кластер чворава су MPI, Message Passing Interface и PVM, Parallel Virtual Machine.[14]

PVM је развијен у Oak Ridge National Laboratory око 1999. године пре него што је MPI био доступан. PVM мора бити директно инсталиран на сваком чвору кластера и обезбећује скуп софтверских библиотека које боје чвор као „паралелну виртуелну машину ". PVM обезбећује run-time окружење за преношење порука, задатке и управљање ресурсима, и обавештавање о грешкама. PVM може да се користи од стране корисничког програма написаног у C, C++, или Fortran-у, итд.[14][15]

MPI се појавио у раним 1990. годинама из дискусије између 40 организација. Почетни напори били су подржани од стране ARPA-а и National Science Foundation. Уместо новог почетка, дизајн MPI нацртан је на различитим доступним функцијама у комерцијалним системима тог времена. MPI спецификације су довеле до конкретних имплементација. MPI имплементације обично користе TCP/IP и сокет конекције.[14] MPI је сада широко доступан комуникациони модел који омогућава, да паралелни програми буду написани у језицима као што су C, Fortran, Python, итд.[15] Тако, за разлику од PVM-а који пружа конкретну имплементацију, MPI је спецификација која се имплементира у системе као што су PICH и Open MPI.[15][16]

Управљање кластера

[уреди | уреди извор]
Јефтини и мали кластер од Cubieboard, који користи Apache Hadoop на Lubuntu

Један од изазова у коришћењу кластер рачунара је цена администрирања која може понекад бити висока као и цена администрирања N независних машина, ако кластер има N чворова. У неким случајевима то даје предност архитектури дељене меморије са мањим трошковима администрације. Због лакше администрације направљене виртуелне машине постале су популарне.

Распоређивање задатака

[уреди | уреди извор]

Када велики више-кориснички кластер треба да приступи веома великој количини података, распоређивање задатака постаје изазов. У хетерогеним CPU-GPU кластерима, који имају сложено апликативно окружење, перформанса сваког посла зависи од карактеристика основног кластера, а мапирање задатака на CPU језгру и GPU уређаја обезбећује значајне изазове.[17] Ово је област текућих истраживања и алгоритама који комбинују и проширују MapReduce и Hadoop су били предложени и студирани.[17]

Управљање квара чвора

[уреди | уреди извор]

Кад чвор у кластеру откаже, стратегије као што су "fencing" могу се користити да би остатак система остао оперативан.[18][19] Fencing је процес изоловања чвора или заштите дељених ресурса када се појављује покварен чвор. Постоје две класе fencing методе; једна онемогућава сам чвор, а друга онемогућава приступ ресурсима као што је дељени диск.[18]

STONITH метод, је скраћеница за "Shoot The Other Node In The Head", што значи да се сумњиви чвор онемогућава или искључује. На пример, power fencing користи контролер напајања да искључи неизлечиви чвор.[18]

Ресурси fencing приступа не дозвољавају приступ ресурсима без искључивања чвора. Ово може укључити трајну резервацију fencing преко SCSI3, влакнастог Channel fencing да онемогући порт влакнастог канала или глобална мрежа блок уређаја (GNBD) fencing да онемогући приступ GNBD серверу.

Развој софтвера и администрација

[уреди | уреди извор]

Паралелно програмирање

[уреди | уреди извор]

Балансирање оптерећења кластера, као што су веб севери користе кластер архитектуру за подршку великог броја корисника и обично сваки кориснички захтев је усмерен на одређени чвор, постизањем паралелизма задатка без више-чворне сарадње, с обзиром да је главни циљ система омогућавање брзог приступа корисника дељеним подацима. Међутим, „кластер рачунари“ који обављају сложене прорачуне за мали број корисника траба да искористе предност могућих паралелних обрада и подела „истога рачунања " између неколико чворова.[20]

Аутоматски паралелизам програма и даље остаје технички изазов, али паралелни модели програмирања могу бити коришћени како би се извршила виши степен паралелизма путем истовременог извршавања одвојених делова програма на различитим процесорима.[20][21]

Дибаговање и мониторинг

[уреди | уреди извор]

Развој и дибаговење паралелних програма на кластеру захтевају паралелне језичке примитиве као одговарајуће погодне алате као што су они расправљали у High Performance Debugging Forum (HPDF) што је резултовало HPD спецификацијама.[15][22] Алати као што су TotalView су тада развијени у циљу дибаговања паралелних имплементација на кластер рачунарима који користе MPI или PVM за пренос порука.

Берклијев NOW (Network of Workstations) систем прикупља кластер податке и складишти их у бази података, док системи као PARMON, развијени у Индији, омогћавају визуелни преглед и управљање великим кластерима.[15]

Application checkpointing може да се користи за враћање датог стања система када чвор откаже током за време више-чворног рачунања.[23] Ово је од суштинског значаја у великим кластерима, с обзиром да се број чворова повећава, па тако расте вероватноћа квара чвора под тешким рачунарским операцијама. Checkpointing може вратити систем у стабилно стање тако да обрада може да се настави без потребе за прерачунавењем резултата.[23]

Цена перформансе

[уреди | уреди извор]

Кластери могу да обезбеде значајне предности перформанси наспрам цене. Систем X суперкомпјутер на Virginia Tech, 28. најмоћнији суперкомпјуер на Земљи, до јуна 2006. године,[24] је 12.25 Tflops кластер рачунар од 1100 Apple XServe G5 2.3 GHz двопроцесорске машине (4 GB RAM, 80 GB SATA HD) која извршава Mac OS X и користи InfiniBand повезивање.

Неке имплементације

[уреди | уреди извор]

GNU/Linux свет подржава различите кластер софтвере; за апликације кластера, постоји distcc, и MPICH. Linux Virtual Server, Linux-HA директор на бази кластера који омогућава да долазни захтеви за услуге буду подељени на више кластер чворова. MOSIX, openMosix, Kerrighed, OpenSSI су потпуно кластер интегрисани у кернел да обезбеде аутоматску миграцију процеса међу хомогеним чворовима. OpenSSI, openMosix and Kerrighed су један-систем сликовних имплементација.

Windows Compute Cluster Server 2003 заснован на Windows Server платформи обезбеђује делова за High Performance Computing као Job Scheduler, MSMPI библиотека и алати за управљање.

gLite је скуп посредничкх технологија креираних од пројекта Enabling Grids за E-sciencE (EGEE).

Slurm се такође користи за распоређивање и управљање неким од највећих суперкомпјутера клатера (види top500 листу).

Остали приступи

[уреди | уреди извор]

Иако је већина кластер рачунара стално распоређена, направљени су покушаји flash mob рачунарства да се изграде краткотрајни кластери за одређено израчунавање. Међутим, веће размере волонтерских рачунарских система, као што је BOINC-заснован систем имају више следбеника.

Референце

[уреди | уреди извор]
  1. ^ Bader, David; Pennington, Robert (1996). „Cluster Computing: Applications”. Georgia Tech College of Computing. Архивирано из оригинала 21. 12. 2007. г. Приступљено 13. 7. 2007. 
  2. ^ „Nuclear weapons supercomputer reclaims world speed record for US”. The Telegraph. 18. 6. 2012. Приступљено 18. 6. 2012. 
  3. ^ а б в Network-Based Information Systems: First International Conference, NBIS 2007. Enokido, Tomoya; Barolli, Leonhard; Takizawa, Makoto (23. 8. 2007). Network-Based Information Systems: First International Conference, NBIS 2007, Regensburg, Germany, September 3-7, 2007, Proceedings. Springer. стр. 375. ISBN 978-3-540-74572-3. 
  4. ^ Hargrove, William W., Forrest M. Hoffman and Thomas Sterling (16. 8. 2001). „The Do-It-Yourself Supercomputer”. Scientific American. 265 (2). стр. 72—79. Приступљено 18. 10. 2011. 
  5. ^ Hargrove, William W. and Forrest M. Hoffman (1999). „Cluster Computing: Linux Taken to the Extreme”. Linux magazine. Архивирано из оригинала 18. 10. 2011. г. Приступљено 18. 10. 2011. 
  6. ^ TOP500 list Архивирано на сајту Wayback Machine (20. јануар 2012) To view all clusters on the TOP500 select "cluster" as architecture from the sublist menu.
  7. ^ M. Yokokawa et al The K Computer, in "International Symposium on Low Power Electronics and Design" (ISLPED) 1-3 Aug. (2011). стр. 371-372
  8. ^ Pfister 1998, стр. 36.
  9. ^ Hill, Mark Donald; Norman Paul Jouppi; Sohi, Gurindar (1999). Readings in computer architecture. Gulf Professional. стр. 41—48. ISBN 978-1-55860-539-8. 
  10. ^ а б High Performance Linux Clusters by Joseph D. Sloan. Sloan, Joseph (2004). High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI. "O'Reilly Media, Inc.". ISBN 978-0-596-00570-2.  page
  11. ^ а б в г High Performance Computing for Computational Science - VECPAR 2004 by Michel Daydé, Jack Dongarra. . 2005. стр. 120—121. ISBN 978-3-540-25424-9.  Недостаје или је празан параметар |title= (помоћ)
  12. ^ Hamada, Tsuyoshi; Nitadori, Keigo; Benkrid, Khaled; Ohno, Yousuke; Morimoto, Gentaro; Masada, Tomonari; Shibata, Yuichiro; Oguri, Kiyoshi; Taiji, Makoto (2009). „A novel multiple-walk parallel algorithm for the Barnes–Hut treecode on GPUs – towards cost effective, high performance N-body simulation”. Computer Science - Research and Development. 24 (1–2): 21—31. S2CID 31071570. doi:10.1007/s00450-009-0089-1. 
  13. ^ Maurer, Ryan: Xen Virtualization and Linux Clustering
  14. ^ а б в Milicchio & Gehrke 2007, стр. 339–341
  15. ^ а б в г д PRABHU 2008, стр. 112
  16. ^ Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). „A High-Performance, Portable Implementation of the MPI Message Passing Interface”. Parallel Computing. doi:10.1016/0167-8191(96)00024-5. CiteSeerX: 10.1.1.102.9485. 
  17. ^ а б K. Shirahata, et al Hybrid Map Task Scheduling for GPU-Based Heterogeneous Clusters in: Cloud Computing Technology and Science (CloudCom), 2010 Nov. 30 2010-Dec. 3. Qiu, Judy (2010). 2010 2nd International Conference on Cloud Computing Technology and Science. стр. 733—740. ISBN 978-1-4244-9405-7. . [1]
  18. ^ а б в Alan Robertson Resource fencing using STONITH. IBM Linux Research Center, 2010 [2][мртва веза]
  19. ^ Vargas, Bianco & Deeths 2001, стр. 58
  20. ^ а б Blum & Aho 2011, стр. 156
  21. ^ Rauber & Rünger 2010, стр. 94.
  22. ^ A debugging standard for high-performance computing by Joan M. Francioni and Cherri Pancake, in the "Journal of Scientific Programming" Volume 8 Issue 2, April 2000 [3]
  23. ^ а б Computational Science-- ICCS 2003: International Conference edited by Peter Sloot. . 2003. стр. 291—292. ISBN 978-3-540-40195-7.  Недостаје или је празан параметар |title= (помоћ)
  24. ^ [„TOP500 List - June 2006 (1—100) | TOP500 Supercomputing Sites[[Категорија:Ботовски наслови]]”. Архивирано из оригинала 24. 02. 2007. г. Приступљено 15. 12. 2013.  Сукоб URL—викивеза (помоћ) TOP500 List - June 2006 (1—100) | TOP500 Supercomputing Sites]

Литература

[уреди | уреди извор]