Կլաստեր (համակարգիչների խումբ)

Կլաստեր — համակարգիչների խումբ՝ միավորված գերարագ կապի ուղիներով, որը օգտվողի տեսանկյունից ներկայացնում է մեկ ապարատային ռեսուրս։ Կլաստերային տեխնոլոգիայի առաջին ճարտարապետներից մեկը՝ Գրեգորի Պֆիսթերը, կլաստերը սահմանեց հետևյալ կերպ․ 《Կլաստերը զուգահեռ կամ բաշխված համակարգի տեսակ է, որը. 

բաղկացած է համակարգչային մի քանի համակարգերից.
աշխատում է որպես մեկ հաշվարկային համակարգ


== Կլաստերների դասակարգում ==


=== Բարձր հասանելիության կլաստեր ===

Նշանակվում են HA հապավումով (անգլ High Availability — բարձր հասանելիություն)։ Կլաստերում հանգույցների ավելորդ թիվը երաշխավորում է ծառայության մատուցումը մեկ կամ մի քանի սերվերների խափանումների դեպքում։ Հանգույցների հաճախ հանդիպող քանակը երկուսն է, ինչը նվազագույն թիվն է, որ կհանգեցնի հասանելիության բարձրացմանը։
Բարձր հասանելիության կլաստերները և համակարգերը բաժանված են 3 հիմնական տեսակի. 

սառը ռեզերվի կամ ակտիվ / պասիվ։ Ակտիվ հանգույցը կատարում է հարցումները, իսկ պասիվը սպասում է ակտիվի ձախողմանը և ձեռնամուխ է լինում աշխատանքին նրա ձախողումից հետո։
տաք ռեզերվի կամ ակտիվ / ակտիվ: Բոլոր հանգույցները կատարում են հարցումները, մեկի ձախողման դեպքում բեռը վերաբաշխվում է մնացածների միջև։ Այսինքն՝ բեռների հավասարակշռման կլաստեր՝ ձախողման դեպքում հարցումների վերաբաշխման աջակցությամբ։ Հետևյալ կերպ են աշխատում գրեթե բոլոր կլաստերային տեխնոլոգիաները, օրինակ՝ Microsoft Cluster Server-ը։ OpenSource OpenMosix նախագիծ.
մոդուլային ավելցուկով։ Կիրառվում է միայն այն դեպքում, երբ համակարգի խափանումը բացառապես անընդունելի է։ Բոլոր հանգույցները միաժամանակ կատարում են նույն հարցումը (կամ դրա մասերը, բայց այնպես, որ արդյունքը հասանելի լինի նույնիսկ եթե որևէ հանգույց ձախողվի)։ 


=== Բեռների հավասարակշռման կլաստեր ===
Դրանց գործունեության սկզբունքը հիմնված է հարցումների բաշխման վրա մեկ կամ մի քանի մուտքային հանգույցների միջոցով, որոնք դրանք վերաուղղորդում են մշակման այլ հաշվողական հանգույցներ։ Նման կլաստերի առաջնային նպատակը արտադրողականությունն է, այնուամենայնիվ, նրանք հաճախ օգտագործում են մեթոդներ, որոնք բարելավում են հուսալիությունը։ Այս կոնստրուկցիաները կոչվում են «սերվերային ֆերմաներ»։


=== Բաշխված հաշվարկների համակարգեր (grid) ===
Նման համակարգերը չեն համարվում կլաստերներ, սակայն դրանց սկզբունքները հիմնականում նման են կլաստերային տեխնոլոգիաներին։ Հիմնական տարբերությունը բոլոր հանգույցների ցածր հասանելիությունն է, այսինքն՝ ժամանակի տվյալ պահին դրանծ շահագործումը երաշխավորելու անհնարինությունը (հանգույցները միացվում և անջատվում են շահագործման ընթացքում), ուստի առաջադրանքը պետք է բաժանվի մի շարք անկախ գործընթացների։ Նման համակարգը, ի տարբերություն կլաստերների, նման չէ մեկ գերհամակարգչի, այլ ծառայում է որպես հաշվարկների բաշխման պարզեցված միջոց։ Կոնֆիգուրացիայի անկայունությունը, այս դեպքում, փոխհատուցվում է մեծ թվով հանգույցներով։ 


== Պատմություն ==
Կլաստերների ստեղծման պատմությունը արմատներով կապված է համակարգչային ցանցերի ոլորտում վաղ զարգացումների հետ։ Համակարգիչների միջև գերարագ հաղորդակցության առաջացման պատճառներից մեկը հաշվողական ռեսուրսների միավորման հույսն էր։ 1970-ականների սկզբին TCP/IP պրոտոկոլի թիմը և Xerox PARC-ը սահմանեցին ցանցային ստանդարտներ։ Հայտնվեց նաև Hydra օպերացիոն համակարգը DEC PDP-11 համակարգիչների համար, որի հիման վրա ստեղծված կլաստերը կոչվեց C.mpp (Պիտսբուրգ, Փենսիլվանիա, ԱՄՆ, 1971 թ.): Այնուամենայնիվ, միայն 1983 թվականին ստեղծվեցին մեխանիզմներ, որոնք հեշտացնում էին առաջադրանքների և ֆայլերի բաշխումը ցանցի միջոցով, որոնց մեծ մասը մշակումներ էին SunOS-ում (Sun Microsystems' BSD-ի վրա հիմնված օպերացիոն համակարգ)։ 
Կլաստերի առաջին կոմերցիոն նախագիծը ARCNet-ն էր, որը ստեղծվել է Datapoint-ի կողմից 1977 թվականին։ Նախագծի ոչ շահութաբեր լինելը հանգեցրեց կլաստերների կառուցուման գործընթացի սառեցմանը մինչև 1984 թվականը, երբ DEC-ը կառուցեց իր VAXcluster-ը VAX / VMS օպերացիոն համակարգի հիման վրա։ ARCNet-ը և VAXcluster-ը նախատեսված են ոչ միայն համատեղ հաշվարկների, այլ նաև ֆայլային համակարգի և ծայրամասային սարքերի համատեղ օգտագործման համար՝ հաշվի առնելով տվյալների ամբողջականության և միանգամայնության պահպանումը։ 
Սովորական անհատական համակարգիչներից կլաստերների ստեղծման մեջ գերկարևոր դեր է ունեցել Parallel Virtual Machine նախագիծը։ 1989 թվականին համակարգիչները վիրտուալ սուպերհամակարգչի մեջ միավորելու այս ծրագիրը բացեց ակնթարթորեն կլաստերներ ստեղծելու հնարավորությունը։ Արդյունքում, բոլոր էժանագին կլաստերների ընդհանուր և միասնական աշխատանքը գերազանցեց «լուրջ» առևտրային համակարգերի աշխատանքը իր կատարողունակությամբ։
Տվյալների փոխանցման ցանցով կառավարվող էժանագին անհատական համակարգիչների վրա հիմնված կլաստերների ստեղծումը շարունակվել է 1993 թվականին ամերիկյան օդատիեզերական գործակալության ՆԱՍԱ-ի կողմից, այնուհետև շարունակվել է 1995 թվականին, երբ մշակվեցին Beowulf կլաստերները՝ հատուկ նախագծված այս սկզբունքի հիման վրա։


== Ծրագրային ապահովում ==
Սերվերից սերվեր հաղորդակցության կազմակերպման լայնորեն օգտագործվող գործիք է MPI գրադարանը, որն աշխատում է C և Fortran լեզուների միջոցով։ Այն օգտագործվում է, օրինակ, MM5 եղանակի մոդելավորման համար։ 
Solaris օպերացիոն համակարգը տրամադրում է Solaris Cluster ծրագրակազմ՝ ապահովելու բարձր հասանելիություն Solaris-ով աշխատող սերվերների համար։
GNU / Linux օգտագործողների շրջանակում հայտնի են հետևյալ ծրագրերը.

distcc, MPICH և այլն՝ ծրագրերի աշխատանքը զուգահեռացնելու մասնագիտացված գործիքներ։ distcc-ը թույլ է տալիս զուգահեռ կոմպիլյացիան GNU Compiler Collection-ում։
Linux վիրտուալ սերվեր, Linux-HA - հոսթ ծրագրակազմ՝ հաշվարկային սերվերների միջև հարցումները բաշխելու համար։
MOSIX-ը, openMosix-ը, Kerrighed-ը, OpenSSI-ն միջուկում ներկառուցված լիարժեք կլաստերային միջավայրեր են, որոնք ավտոմատ կերպով բաշխում են առաջադրանքները միատարր հանգույցների միջև։ OpenSSI-ը, openMosix-ը և Kerrighed-ը ստեղծում են մեկ օպերացիոն համակարգի միջավայր հանգույցների միջև։Կլաստերավորման մեխանիզմները նախատեսվում է նաև ներկառուցել DragonFly BSD միջուկում, որը 2003 թվականին առաջացել է FreeBSD 4.8-ից։ 
Microsoft-ը թողարկում է HA կլաստերը Windows օպերացիոն համակարգի համար։ Ենթադրվում է, որ այն ստեղծվել է Digital Equipment Corporation տեխնոլոգիայի հիման վրա, աջակցում է մինչև 16 (2010 թվականից) հանգույցներ կլաստերում, ինչպես նաև աշխատում է SAN (Storage Area Network) ցանցում։
Windows Compute Cluster Server 2003 (CCS), որը թողարկվել է 2006 թվականի հունիսին, նախատեսված է բարձր տեխնոլոգիական ծրագրերի համար, որոնք պահանջում են կլաստերային հաշվարկներ։ Windows Compute Cluster Server-ի յուրաքանչյուր կլաստեր բաղկացած է մեկ կամ մի քանի հիմնական մեքենաներից, որոնք բաշխում են աշխատանքները և մի քանի ենթարկվող մեքենաներ, որոնք կատարում են հիմնական աշխատանքը։ Windows HPC Server 2008-ը ներկայացվել է 2008 թվականի նոյեմբերին՝ փոխարինելու Windows Compute Cluster Server 2003-ին։ 


== Արտաքին հղումներ ==
What is a cluster?.IEEE Technical Committee on Scalable Computing (TCSC).Computer Cluster.


== Գրականություն ==
Gregory F. Pfister,  In Search of Clusters: The Coming Battle in Lowly Parallel Computing, 1995։David H. M. Spector,  Building Linux clusters, 2000։Algorithms and Tools for Parallel Computing on Heterogeneous Clusters, 2007։Matei Zaharia,  An Architecture for Fast and General Data Processing on Large Clusters, 2007։


== Ծանոթագրություններ ==