Apzīmējumi un modeļi
2 pakāpē 10 ir 1024. To pieraksta tā: 2^{10} = 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 = 1024 Datori darbojas ar binārā koda skaitļiem un desmitnieku sistēmas skaitļus aprēķiniem vispirms pārvērš binārajā kodā. Piemēram, 5 desmitnieku sistēmā binārajā sistēmā būs 101 = 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 bet 7 būs 111 = 1 \cdot 2^2 + 1 \cdot 2^1 + 1 \cdot 2^0 Tātad, binārajā sistēmā 5 ir 101 un 7 ir 111.Binārie skaitļi sastāv tikai no 1 un 0, kas elektroniski nozīmē “strāva plūst” vai “strāva neplūst” (lai gan citi apzīmējumi, piemēram, patiess/nepatiess vai ieslēgts/izslēgts, ir vienlīdz derīgi). Šādu skaitļu saskaitīšanu, reizināšanu u.c. var viegli īstenot ar elektroniskajiem slēdžiem un tā būvē skaitļošanas procesorus.Skaitļošanā šos 1 un 0 sauc par bitiem. Vienu skaitli parasti veido 8 biti jeb un to sauc par baitu. Baits satur tikai tik daudz informācijas, lai izveidotu vienu mazo burtu vai ciparu. Ar bināro kodu, jebkuru ciparu, burtu, vārdu vai pikseli attēlā var aizstāt ar baitu virkni. Skaitļošanā peldošā komata (punkta) skaitlis ir reprezentācija reālam skaitlim. Peldošā komata skaitļi tiek izmantoti, lai attēlotu plašu vērtību diapazonu, arī ļoti lielus vai ļoti mazus skaitļus, un tie ir datora aritmētikas pamatdaļa. Piemēram, skaitlis kļūs par , bet skaitlis kļūs par . Tas nozīmē, ka šādā veidā varam jebkuru skaitli pārvērst zīmīgajos ciparos un pakāpēs pie bāzes "10".Piemēram, ja ir jāaprēķina superlielu skaitļu kombinācija (reizināšana vai dalīšana) ar ļoti maziem skaitļiem. Tāds piemērs varētu būt - cik ātri gaisma pārvar tādu mazu attālumu, kā cilvēka pēdas garumu? Gaismas ātrums ir 300 000 km/h, bet pēdas garums 45 kurpes izmēram ir 29,1 cm. Kā var izrēķināt, cik ilgā laikā gaisma vakuumā veic šādu attālumu? Izdalot pēdas garumu (29,1 cm) ar gaismas ātrumu. \frac{attālums}{ātrums} = laiks Vispirms pārveidosim skaitļus vienādās mērvienībās. Ja gaismas ātrums ir 300 000 km/h, tad arī pēdas garums ir jāpārveido kilometros . Tad dalot 0,000291 ar 300 000 mēs iegūsim skaitli, kas rādīs, cik stundās gaisma noiet 29,1 cm attālumu. Vieglāk to būs izdarīt, ja skaitļus pārveidosim zīmīgajā daļā un 10 pakāpēs, t.i., kā peldošā komata skaitli. Rezultāts tad būs \frac{2,91 \cdot 10^{-4}}{3 \cdot 10^{5}} = 0,97 \cdot 10^{-9} (h). Cik sanāk, ja izteiksim sekundēs, izdalot ar sekunžu skaitu vienā stundā, kas ir 3600? Tad sanāk \frac{0,97 \cdot 10^{-9}}{3,6 \cdot 10^{3}} = 0,269444 \cdot 10^{-12} (s). jeb apmēram 0,269 picosekundes.Daudzās valstīs, piemēram, ASV, decimālās daļas atdala ar punktu, bet Latvijā un arī citās Eiropas valstīs – ar komatu. Šajā kursā mēs izmantosim Latvijas standartus.Vesels skaitlis ir skaitlis, kas var būt naturāls skaitlis (pozitīvs jeb lielāks par nulli), naturālo skaitļu pretējais skaitlis (negatīvs jeb mazāks par nulli) vai nulle. Veselo skaitļu ir bezgalīgi daudz, neeksistē lielākais un mazākais veselais skaitlis. Tos izmanto dažādās lietojumprogrammās, piemēram, skaitīšanā, aritmētiskās operācijās un datu glabāšanā. Veseli skaitļi parasti tiek attēloti, izmantojot fiksētu bitu skaitu, kas nosaka attēlojamo vērtību diapazonu. Piemēram, 32 bitu (4x8 biti) vesels skaitlis var attēlot vērtības no līdz . Tas ir standarta precizitātes skaitlis, bet superdatoros var būt speciāliem aprēķiniem izmantoti arī 64 bitu skaitļi un tie ir divkāršas precizitātes ( angl. double-precision). Datora modelis Attēlos parādīts datora modelis ar apzīmējumiem latviešu un angļu valodā. Tāpat divās valodās būs arī nākamie attēli.Datorā ir skaitļošanas procesors, kas apstrādā tajā ievadītos datus. Datus glabā datora atmiņā. Tos datus, kurus apstrādā, glabā nelielā atmiņā pie paša procesora, lai paātrinātu procesu. Apstrādātos datus nodod glabāšanai jau lielākā atmiņā, bet tas process ir lēnāks un prasa vairāk laika. HPC mezgla modelis Modernajos CPU un GPU jau ir vairāki skaitļošanas kodoli, kas var darboties paralēli. Operatīvā atmiņa sastāv no datu reģistra, kas ir pie paša skaitļošanas kodola, un kešatmiņas. Šīs atmiņas izmanto tieši aprēķinu laikā, jo datu nodošana un saglabāšana ir visātrākā.Aprēķinu rezultātus tālāk nodod brīvpieejas atmiņai (RAM), kas jau var saglabāt vairāk datu. Tos var tālāk izmantot turpmākajiem aprēķiniem un tad tos atkal pārvada uz ķešatmiņu.Ja visi aprēķini ir paveikti un gala rezultātu vajag saglabāt, tad datus tālāk ieraksta HDD/SSD diskos ilgtermiņa saglabāšanai. Pēc datora izslēgšanas RAM atmiņas saturs tiek izdzēsts. Termini Kešatmiņa (angl. cache) jeb superātrā atmiņa (arī sīkatmiņa) ir pievienota tieši skaitļošanas kodolam un ļauj ļoti ātri ievadīt/izvadīt datus. Kešatmiņas datu ietilpība ir maza, tikai daži tūkstoši baitu (kB), bet var būt pat MB, tāpēc to izmanto tikai ļoti īslaicīgai datu uzglabāšanai. RAM (angl. Random Access Memory) - brīvpieejas jeb operatīvā atmiņa ir jau lielāka nekā kešatmiņa. Tur saglabājas programmas kods un dati programmas izpildes laikā. Operatīvā atmiņa veic īslaicīgu datu glabāšanu un no tās apjoma ir atkarīga datora ātrdarbība. Jo lielāks ir operatīvās atmiņas apjoms, jo vienmērīgāk darbosies operētājsistēma un ātrāk ielādēsies programmas. Mājas vajadzībām pietiks ar apjomu no 4GB līdz 8GB, savukārt spēļu datoriem un resursietilpīgu programmu lietošanai būs vajadzīgi 8 GB līdz 32 GB atmiņas. Piekļuve šai atmiņai ir lēnāka nekā piekļuve kešatmiņai, bet daudz ātrāka nekā piekļuve cietajam diskam. Taču RAM saturs izdzēšas, kad dators tiek izslēgts. Tāpēc aprēķinu rezultātu un citu datu saglabāšanai vajadzīga cietā diska atmiņa. HDD (angl. Hard Drive Disc) jeb cietais disks un SSD (angl. Solid State Drive) jeb pusvadītāju disks ir datora ilglaicīgā atmiņa. Cietais un pusvadītāju disks nodrošina datorā ilgstošu datu saglabāšanu. Datu ierakstīšana un nolasīšana HDD un SSD ir lēnāka nekā RAM un daudz lēnāka nekā kešatmiņā. Pirmie cietie diski bija HDD un tajos datus ierakstīja tāpat kā lenšu vai kasešu magnetofonos, bet attīstoties elektronikai radās pusvadītāju diski (SSD) un ietilpīgas zibatmiņas (angl. flash), kuras var pieslēgt USB portam. Joprojām tomēr dažreiz lieto arī magnētiskās lentas datu ierakstiem un glabāšanai. HDD un SSD atmiņas apjomi jau sasniedz terra baitus (TB) un peta baitus (PB). HPC klasteris HPC klasteris ir daudzu datoru apvienojums un ļauj risināt sarežģītus skaitļošanas uzdevumus īsākā laikā. Skaitļošana notiek ar datoriem, kurus veido daudzi paralēli procesori. Mūsdienās HPC ir jebkuras modernas universitātes neatņemama sastāvdaļa, un tas tiek izmantots dažādām vajadzībām – sākot ar inženiertehniskiem uzdevumiem un beidzot ar lielo datu (angl. Big Data) analītiku un mašīnmācīšanos mākslīgajam intelektam. HPC klasteris sastāv no daudziem atsevišķiem serveriem, kas saslēgti kopā ar ātru starpsavienojumu. Šāda sistēma ir derīga gan paralēlajai skaitļošanai, nodrošinot viena liela uzdevuma paralēlu izpildi, gan skaitļošanai, izpildot daudzus neatkarīgus uzdevumus uz atsevišķiem skaitļošanas mezgliem. HPC klasteris ir aprīkots ar augstas veiktspējas procesoriem (CPU) un grafiskajiem paātrinātājiem (GPU).Lietotājs saņem reģistrāciju un iegūst tiesības droši pieslēgties HPC klasterim (skatīt attēlu). Pēc pieslēgšanās un datu ievades par darba uzdevumu, šie dati nonāk plānošanas mezglā. Plānotājs atkarībā no darba uzdevuma sarežģītības un lietotāju skaita katram iedala skaitļošanas mezglu skaitu un atmiņas apjomu. Tādā veidā uz HPC klastera vienlaicīgi var tikt veikti daudzi uzdevumi paralēli.Sadalot uzdevumu izpildi uz vairākiem procesoriem paralēli, var paātrināt datu apstrādi un veikt pētījumus detalizētāk. Sarežģītu uzdevumu novirzīšana uz HPC dod iespēju atslogot savu personālo datoru citiem darbiem.RTU HPC klasteris atrodas Ķīpsalā Izglītības un Zinātnes ministrijas IT datu centrā, kur tiek nodrošināta nepārtraukta elektrobarošana, dzesēšana, kā arī administratoru uzraudzība, kas samazina pārrāvuma iespēju simulācijas laikā. HPC klasterī ir jau instalēta zinātniskā programmatūra, ar kuras sarakstu var iepazīties https://hpc.rtu.lv/programmatura/ RTU HPC mājaslapā. Mūra likums un takts frekvence Kad sāka attīstīties integrālo shēmu ražošana, Intel firmas dibinātājs Gordons Mūrs (Gordon Moore) paredzēja, ka tranzistoru izmēri pakāpeniski samazināsies un tranzistoru skaits vienā mikroshēmā pieaugs.Mūra likums tika formulēts 1965. gada publikācijā un tas noteica, ka ik pēc diviem gadiem tranzistoru skaits mikroshēmā divkāršosies. Tas tāpēc, ka attīstās tehnoloģija un var izveidot arvien mazākus tranzistorus. Tas nozīmē logaritmisku pieaugumu. Pēc 2 gadiem 2 reizes vairāk tranzistoru, pēc 4 gadiem jau reizes, bet pēc 6 gadiem jau reizes vairāk un tā tālāk.Ja pirmajā Intel 4004 CPU (1971) bija tikai 2300 tranzistori 10 lieli, tad tagad jau ir mikroshēmas ar ~ 30 miljardiem tranzistoru, kas ir tikai 3 nm lieli. Samazinot tranzistoru izmērus, varēja palielināt arī CPU takts frekvenci. Ja Intel 4004 takts frekvence bija tikai 750 kHz, tad ap 2005. gadu sasniegts maksimums daži GHz un turpmākais palielinājums nebūs. Ar vēl augstāku takts frekvenci strauji pieaug izdevumi mikroshēmas dzesēšanai. Frekvence ir ciklu vai svārstību skaita rādītājs laika vienībā. Piemēram, maiņstrāvas tīklā ar 230 V spriegumu ir sinusoīdas formas signāls (līdzīgi kā mainās dienas garums gada laikā). Frekvenci izsaka tādās mērvienībās kā herci (Hz), kas apzīmē vienu ciklu sekundē. Maiņstrāvas tīklā frekvence ir 50 Hz jeb tas nozīmē, ka 50 reizes sekundē spriegums svārstās starp + un -. Frekvence ir svarīgs jēdziens dažādās jomās, tostarp fizikā, inženierzinātnēs un matemātikā. To lieto, lai aprakstītu ātrumu, kādā sistēma vai process svārstās vai vibrē. Skaņas frekvence tiek izmantota, lai aprakstītu skaņas augstumu, kur augstākas frekvences rada augstākas skaņas un zemākas frekvences rada zemākas skaņas. Cilvēks dzird skaņas sākot no 20-30 Hz un līdz pat 16-20 kHz. Datoru kontekstā frekvence attiecas uz centrālā procesora takts frekvenci, kas ir mērījums, cik skaitļošanas ciklu sekundē procesors var izpildīt. Datoru termini Termini mainās un speciālisti bieži vien izmanto angliskos terminus vai pat izmanto savus izdomātos apzīmējumus. Skaitļošanas kodols ir CPU pamatelements (angl. core). Sākotnēji CPU bija viens kodols, bet tad ātrdarbībai pielika vēl otru. Tagad jau var būt vairāki kodoli vienā skaitļošanas mezglā. Kodols veic skaitļošanas operāciju un datus ņem no kešatmiņas un turpat tos saglabā. Ar kešatmiņu ir visātrākais datu nolasīšanas un saglabāšanas ātrums. Agrāk datorus sauca par “elektronisko skaitļošanas mašīnu” jeb ESM. Lietoja arī saīsinājumu “skaitļotājs”, tāpēc arī superdatoru mēs reizēm dēvējam par superskaitļotāju. Jau pirmajā nedēļā tika apskatīts termins “dators” un tas ir programmējama elektroniska ierīce, kas var uzglabāt, izgūt un apstrādāt datus dažādu uzdevumu veikšanai. To var izmantot vārdu, ciparu un attēlu glabāšanai, kārtošanai un atrašanai, kā arī aprēķinu veikšanai un citu iekārtu vadīšanai. Mūsdienu datori var veikt plašu darbību klāstu, kas pazīstamas kā programmas, ļaujot tiem automātiski veikt aritmētisko vai loģisko darbību secības. Dators sastāv gan no aparatūras, kas ietver fiziskās un elektroniskās komponentes, gan no programmatūras, kas ietver instrukciju, datu vai programmu kopumu, ko izmanto datora darbināšanai un konkrētu uzdevumu izpildei. Datorā visu datu apstrādi parasti veic procesors jeb CPU (angl. Central Processing Unit). CPU jeb centrālo procesoru varētu saukt par datora smadzenēm. Tas veic loģiskās, matemātiskās, vadības un datu ievades/izvades darbības atbilstoši datorprogrammai. Modernos CPU ir pat vairāki skaitļošanas kodoli. Modernajiem mājas galda datoriem, klēpjdatoriem, kā arī plašetdatoriem un viedtelefoniem jau ir procesori ar 4-8 skaitļošanas kodoliem. Klasteros, kuri veido superdatorus, izmanto pat CPU ar 64 un vēl vairāk kodoliem. Kodolu skaits jaunajos procesoros pakāpeniski palielinās. Skaitļošanas mezglu (angl. node) jeb mezglu veido procesors (CPU) un atmiņa. Tie tad arī ir pamata elementi, kas veido superdatoru. Ja no superdatora izņemtu vienu mezglu, tam pieliktu monitoru un klaviatūru, tad sanāk parastais galda dators. Tāpat varētu paņemt daudzus klēpjdatorus, savienot tos un mums būtu superdators. Starpsavienojums ir liela ātruma datu pārvades tīkls, kas savieno simtus vai pat tūkstošus skaitļošanas mezglu vai klasteru, nodrošinot datu apmaiņu starp tiem ar minimālu aizturi laikā. Šo tīkla savienojumu varētu salīdzināt ar rūteri, kas jums mājās nodrošina savienojumu starp viedtelefonu un klēpjdatoru. Starpsavienojums gan ir speciāli veidots un optimizēts ātrai komunikācijai salīdzinājumā ar parastu rūteri.