LexiconShiftInnovations/SinhalaWikipediaArticles huggingface dataset:
සකසන සමගම ශක්ති පරිභෝජනය වැඩී කිරීම මගින් සංඛ්‍යාතය වැඩි කර පරිගණක වැටසටහන් වේගවත් කිරීමේ ක්‍රියාවලියද අවසන් විය[9]. මූවර් ගේ නියමය (Moore's Law) යනු පරීක්ශණ සහ නිරීක්ශණ පාදක කරගෙන ඉදිරිපත් කරනලද සුප්‍රකට න්‍යායකි. එයින් කියවෙන්නේ සෑම මාස 18 ත් 24 ත් අතර කාලයකදී පරිගණක චිපයක අඩංගු කළහැකි ට්‍රාන්සිස්ටර ප්‍රමාණය දෙගුණයකින් ඉහළ යන බවයි[10]. ශක්ති පරිභෝජනය සම්බන්දව ඉහත කීලෙස විවිධ ගැටලු ඇති වුවද 70 දශකයේදී ඉදිරිපත් කරනලද මුවර්ගේ නීතිය තවමත් එලෙසින්ම නොබිදී පවතී. සංඛ්‍යාත පරිමාණන සංකල්පය බිඳවැටීමත් සමගම දත්ත සැකසුම් ඒකක සදහා අළුතෙන් එක්කරන ට්‍රාන්සිස්ටර යොදා ගැනෙනුයේ සමාන්තර පරිගණනය සදහා අවශ්‍ය නව දෘඩාංග පරිගණක චිප වලට එක් කිරීම සදහායි. අම්ඩාල් (Amdahl)ගේ නීතිය සහ ගුස්ටැෆ්සන් (Gustafson)ගේ නීතියආම්ඩාල් ගේ නීතිය (Amdahl's Law) ප්‍රස්ථාරික නිරූපණය. යම් වැඩසටහනක් කොපමන ප්‍රමාණයකින් සමාන්තරගත කළහැකිද යන්න අනුව එම වැඩසටහන සමාන්තර පරිගණනය මගින් කොපමණ වේගවත් කළහැකිද යන්න තීරණය වේ. උදාහරණයක් ලෙස යම් වැඩසටහනක් 90% කින් සමාන්තරගත කළහැකි නම් , සමාන්තරගත කළ නොහැකි වැඩසටහන් කොටස 10% නම් ,
එම වැඩසටහන වේගවත් කළහැකි උපරිමය කොපමන දත්ත සකසන ප්‍රමාණයක් භාවිතා කළද දස ගුණයකට වඩා වැඩි නොවේ.පරිගණන සමාන්තරකරණය මගින් දත්ත සැකසීම වේගවත් කිරීමේ ක්‍රමයක් ලෙස දත්ත සකසන ඒකක ගණන දෙගුණ කිරීම මගින් වැඩසටහන් ධාවන කාලය අඩකින් අඩුකිරීම දැක්වියහැක. නැවත වාරයක් එසේ දෙගුණ කිරීම මගින් නැවතත් ධාවන කාලය අඩකින් අඩු කළහැකිය. එනම් රේඛීය (linear) ලෙස වේගවත් බව වැඩි කරගත හැකිය. කෙසේ නමුත් මෙසේ ප්‍රශස්ත මට්ටමකට වේගවත් කළහැකි වන්නේ සමාන්තර ඇල්ගොරිතම කීපයක් පමණි. බොහෝ ඇල්ගොරිතම මගින් ආසන්න ලෙස හෝ රේඛීය තත්ත්වයෙන් වේගවත් කිරීම් සිදුකරනු ලබන්නේ දත්ත සැකසුම් මූලිකාංග කීපයක් සදහා පමණි. ඉන්පසු දත්ත සැකසුම් මූලිකාංග ඒකක ප්‍රමාණය ඉහළ යත්ම එම රේඛීය භාවය කෙමෙන් ඒකාකාරී තත්වයකට පත්වේ. සමාන්තර පරිගණන වේදිකාව (parallel computing platform) සදහා විභව වේගවත් කිරීමේ සමීකරණය අම්ඩාල්ගේ නීතියයි. එය සූත්‍රකෘත කරනු ලැබූයේ 1960 දීයි[11]. එමගින් කියවෙන ආකාරය අනුව ප්‍රධාන වැඩසටහනෙහි අඩංගු කුඩා සමාන්තරකරණය කළ නොහැකි කොටසක් නිසා සම්පූර්ණ වැඩසටහනේම වේගවත් කිරීම අඩාලවේ. විශාල ගණිතමය හෝ ඉන්ජිනේරුමය ගැටලුවක් විසදීම සදහා ලියනලද පරිගණක
වැඩසටහන් වල සමාන්තරීකරණය කළහැකි වැඩසටහන් කොටස් මෙන්ම එසේ කළ නොහැකි කොටස් ද අඩංගු වේ.මෙසේ සමාන්තරගත කළනැහැකි කුඩා වැඩසටහනෙහි ධාවන කාල භාගය α නම් , එවිටS=1α{\displaystyle S={\frac {1}{\alpha }}}මගින් ලබාදෙනුයේ එම වැඩසටහනේ උපරිම සමාන්තරගතකරණ වේගයයි. වැඩසටහන සදහා අනුක්‍රමික කොටස 10% නම් එම වැඩසටහන සදහා ලබාගතහැකි වේගවත් බව දස ගුණයකට (‍x10) වඩා වැඩි කරගත නොහැක. එනම් ඉන්පසු කොපමන දත්ත සැකසුම් ඒකක තව තවත් එක්කලද ප්‍රතිඵලය එකම වේ. ඒ නිසා සමාන්තරගතව දත්ත සැකසුම් මූලිකාංග එක්කළ හැකි උපරිමයක් ඇත. ගුස්ටැෆ්සන් (Gustafson)ගේ නීතිය තවත් පරිගණනය සම්බන්ද නීතියකි. මෙය අම්ඩාල්ගේ නිතිය හා සමීපව සම්බන්ද වේ[12].එයින් කියවෙන පරිදි P{\displaystyle P} සංඛ්‍යාවක් දත්ත සැකසුම් ඒකක සමග වැඩසටහනක් වේගවත් කිරීමේදීයම් නියමිත කර්ත්ව්‍යයක් සදහා එකිනෙකට වෙනස් අනුකොටස් දෙකක් ඇතැයි සිතන්න. ඒවා A සහ B ලෙස ගනිමු. සම්පූර්ණ පරිගණනයෙන් B වල කොටස 25%කි. පරිගණක ක්‍රමලේඛන සම්පාදකයෙකුට (programmer) මෙම කොටස පස් ගුණයකින් වේගවත් කළහැක, එහෙත් ඉන් මුළු වැඩසටහන වේගවත් වන්නේ ඉතා කෙටි කලකින් පමණි(රූපය). එ
ම නිසා වැඩසටහන වේගවත් කිරීමට නම් A කොටස දෙගුණයක් වේගවත් කළයුතුය. එය B වේගවත් කිරීමට වඩා බෙහෙවින් ඵලදායි වේ.S(P)=P−α(P−1).{\displaystyle S(P)=P-\alpha (P-1).\,}අම්ඩාල්ගේ නීතියේ ආකාරයට අනුව ගන්නා උපකල්පනයක් නම් වැඩසටහනේ සමාන්තරගත කළ නොහැකි අනුක්‍රමික කොටසෙහි ධාවන කාලය, යොදා ගන්නා දත්ත සැකසුම් සංඛ්‍යාවෙන් ස්වාධීනය යන්නයි. එහෙත් මෙම උපකල්පනය ගුස්ටැෆ්සන්ගේ නීතියෙහි භාවිතා නොවේ.පරායත්තතාව (Dependencies)සමාන්තර පරිගණනය සදහා ඇල්ගොරිතම (parallel algorithms) සකස් කිරීමේදී අවශ්‍ය මූලික කරුණක් ලෙස දත්ත පරායත්තතාවය (data dependencies) අවබෝද කරගැනීම දැක්වියහැක. කිසිම වැඩසටහනකට තම දීර්ඝතම පරායත්ත ගණනය කිරීම් ශ්‍රේණියට වඩා වේගවත්ව වැඩසටහන නිමා කළ නොහැක (Critical path method). කුමක් නිසාදයත් අනිත් ගණනය කිරීම් මත යැපෙන ගණනයකිරීම් පිළිවෙලින් එකිනෙක කළයුතු බැවිනි. එහෙත් බොහෝ ඇල්ගොරිතම වල මෙසේ එකිනෙකට දීර්ඝ ලෙස සම්බන්දිත ගණනය කිරීම් නොමැති නිසා ඒවා සමාන්තර ලෙස වෙන වෙනම ගණනය කළහැක. Pi සහ Pj වැඩසටහනක කොටස් දෙකක් ලෙස ගනිමු. මේවා බර්න්ස්ටගේ කොන්දේසි [13] (Bernstein's con
ditions) වලට අනුකූල වන්නේ එකිනෙකට ස්වාධීන හා සමාන්තරව ගණනය කළහැකිනම් පමණි. Pi, නම් Ii යනු සියලු ප්‍රධාන විචල්‍යයන්ද Oi යනු ප්‍රතිදානවේ.ඒ ආකරයෙන්ම Pj, P i සහ Pj එකිනෙකට ස්වාධීනවේ.Ij∩Oi=∅,{\displaystyle I_{j}\cap O_{i}=\varnothing ,\,}Ii∩Oj=∅,{\displaystyle I_{i}\cap O_{j}=\varnothing ,\,}Oi∩Oj=∅.{\displaystyle O_{i}\cap O_{j}=\varnothing .\,}මෙහි පළමු කොන්දේසිය උල්ලංගනය කිරීම නිසා ප්‍රවාහ පරායත්තතාවය ඇතිවේ (flow dependency). පළමු ප්‍රකාශයේ පිළිතුරු දෙවැන්න මගින් භාවිතා කරයි. දෙවන ප්‍රකාශයෙන් ප්‍රති-පරායත්තතාවක් පෙන්නුම් කරයි. තුන්වන සහ අවසන් ප්‍රකාශයෙන් පෙන්වාදෙන්නේ ප්‍රතිදාන පරායත්තතාවයි. මෙම ප්‍රකාශ දෙක එකම ස්ථානයක සදහන් කළවිට අවසන් ප්‍රතිඵල ලැබිය යුත්තේ තර්කානුකූලව අවසානයේ සකසනය වූ ප්‍රකාශයයි.පහත දැක්වෙන සමීකරණය බලන්න, එමගින් විවිධ වූ පරායත්තතාවන් ආදර්ශනයකරයි.1: function Dep(a, b)2:    c := a·b3:    d := 3·c4: end functionමෙහි තුන්වන කණ්ඩය දෙස බලන්න, එය දෙවන කණ්ඩය නොමැතිව ගණනය කළනොහැක (සමාන්
තරව වුවද කළ නොහැක), එයට හේතුව නම් දෙවන කණ්ඩයේ පිළිතුර තුන්වන කණ්ඩය සදහා අත්‍යාවශ්‍ය බැවිනි. එනම් එය ඉහත සදහන් කළ පළමු කොන්දේසිය උල්ලංගනය කරමින් ප්‍රවාහ පරායත්තතාවය ඇතිකරයි (flow dependency).1: function NoDep(a, b)2:      c := a·b3:      d := 3·b4:      e := a+b5: end functionමෙම උදාහරණයේදී කිසිදු පරායත්තතාවක් නොමැති නිසා මේවා සියල්ල එකවිට සමාන්තරව ගණනය කළහැක.බර්න්ස්ටෙන්ගේ කොන්දේසි අනුව දත්ත සකසන අතර මතකය හවුලේ බෙදාගැනීමක් සිදු නොකරයි. එහෙත් සමහර අවස්ථා වලදී එසේ බෙදාහැරීම වැදගත් වේ. උදාහරණ: semaphore (programming), barrier (computer science) සහ Synchronization (computer science) වැනි අවස්ථා.තරඟකාරී තත්වය (Race conditions), පොදු බැහැර කිරීම (Mutual Exclusion), සමමුහුර්තකරණය (Synchronization) සහ සමාන්තර අඩපනවීම (Parallel Slowdown)සමාන්තර පරිගණන වැඩසටහනක ඇති අනුකොටස් බොහෝ විට නූල් / Thread (computer science) නමින් හදුන්වයි. සමහර පරිගණක වැඩසටහන් මගින් ඊටත් වඩා කුඩා ඒකක වන තන්තු / Fiber (computer science) යොදාගනී.අනෙක් වැඩසටහන් වඩාත් විශාල අනු කොටස් වල්ගයක් වන සකසන P
rocess (computing) යොදාගනී. එහෙත් බොහෝවිට සම්මතයක් ලෙස පරිගණක වැඩසටහන් වල අනුකොටස් ලෙස පිළිගන්නේ නූල් / thread ආකාරයෙනි. මෙම නූල් නිතරම ඒවා එකිනෙක හවුලේ තබාගන්නා විචල්‍ය / variable (programming) යාවත්කාලීන කිරීම සිදුකරයි. වැඩසටහන් දෙකක් අතර විධාන පහත ආකාරයෙන් විවිධ පිළිවෙලින් තිබියහැක. Thread AThread B1A: Read variable V1B: Read variable V2A: Add 1 to variable V2B: Add 1 to variable V3A Write back to variable V3B: Write back to variable V1B විධානය 1A සහ 3A අතරදී දත්ත සැකසුවහොත් හෝ 1A විධානය 1B සහ 3B අතර දත්ත සකස් කළහොත් වැඩසටහන වැරදි දත්ත නිපදවයි. මෙය තරඟකාරී තත්වය (Race conditions) නමින් හැදින්වේ. වැඩසටහන් ක්‍රමලේඛකයා විසින් අනිවාර්යයෙන් අගුලක් / Lock (computer science) මේ සදහා සකස්කළ යුතුවේ. එමහින් පොදු බැහැර කිරීමක් (Mutual Exclusion) සිදුවේ. මෙසේ අගුලක් / lock යනු ක්‍රමලේඛන භාෂා ඉදිකිරීමක් වන අතර එමගින් එක් නූලකට පමණක් විචල්‍යයක පාලනය සියතට ගෙන අනෙක් නූල් වලට එම විචල්‍යය කියවීම හෝ ලිවීමෙන් වලක්වා එය අගුල් දැමීමක් සිදුකරයි. මේ එවැනි අගුල් භාවිතා කර නැවත ලියන
ලද වැඩසටහනයි.Thread AThread B1A: Lock variable V1B: Lock variable V2A: Read variable V2B: Read variable V3A: Add 1 to variable V3B: Add 1 to variable V4A Write back to variable V4B: Write back to variable V5A: Unlock variable V5B: Unlock variable Vමෙහිදී එක් නූලක් පමණක් සාර්ථකව විචල්‍ය V අගුලුලාගනී. අනෙක් නූල මෙහිදී ක්‍රියා විරහිත වන අතර එයට V විචල්‍යය නැවත අගුලු අරිනතුරු කියවීම හෝ ලිවීම කළ නොහැක. මෙම ක්‍රමය නිවැරදි වැඩසටහන් ක්‍රියාකාරීත්වයක් සදහා උදවු වුවද වැඩසටහන බෙහෙවින් මන්දගාමී කළහැක. මෙවැනි විචල්‍යයන් කීපයක් එකවර අගුලුලෑම සදහා යොදාගන්නා පරමාණුක නොවන (Atomic operation) වැඩසටහනක් සම්පූර්ණයෙන් ඇනහිටීමක් උවද වියහැක (deadlock). පරමාණුක අගුලුලෑමක් මගින් එකවර විචල්‍ය කීපයක් අගුලු ලෑම කළහැකි අතර එකදු විචල්‍යයක් හෝ එසේ අගුලු ලෑම කළනොහැකි නම් එය කිසිදු විචල්‍යයක් අගුලු ලෑමෙන් වැලකී සිටියි. මෙවැනි අවස්ථාවකදී නූලට තම කටයුතු සම්පූර්ණ කළනොහැකි නිසා සම්පූර්ණ වැඩසටහනම අඩපණ වේ. බොහෝ සමාන්තර පරිගණන වැඩසටහන් සදහා ඒවායේ අනුකොටස් සමමුහුර්තකරණය අවශ්‍යවේ. මෙහිදී පරි
ගණන බාදකයක් (barrier) යෙදවීම කළයුතු වේ. මෙම බාදක බොහෝ විට මෘදුකාංග අගුලු භාවිතයෙන් ස්ථාපනය කරයි. සියළුම සමාන්තරකරණයන් මගින් වේගවත් බව ලැබෙන්නේද නැත. සාමාන්‍යයෙන් යම් කාර්යයක් කොටස් වලට බෙදා වෙන්කළ විට ඒවා එකිනෙක සන්නිවේදනයේදී යොදාගන්නා කාලයද ඉහළ යයි. මේ නිසා සමහර අවස්ථා වලදී ගැටලු විසදීමට ගතවන කාලයට වඩා වැඩි කාලයක් මෙසේ සන්නිවේදන කටයුතු සදහා වැයවියහැක. මෙසේ අතිරේක සමාන්තරකරණය නිසා වැඩසටහන් වල සිදුවන අඩපනවීම සමාන්තර අඩපනවීම නමින් හදුන්වයි (Parallel Slowdown).මෘදු මුහුණත (Fine-grained), රළු මුහුණත (coarse-grained) සහ අපහසුතා සමාන්තරකරණය (embarrassing parallelism)පරිගණක වැඩසටහන් බොහෝ විට ඒවායේ අනුකොටස් එකිනෙක සමමුහුර්තකරණය කිරීම කොතරම් ඉක්මනින් කළයුතුද යන්න අනුව වර්ගීකරණය කරයි. මෘදු මුහුණත (Fine-grained) වර්ගයේ වැඩසටහන් වල අනුකොටස් අතර තප්පරයකට කීපවරක් සමමුහුර්ත කිරීම් කළයුතු අතර රළු මුහුණත (coarse-grained) වර්ගයේ වැඩසටහන් සදහා එසේ තප්පරයකට කීපවරක් සමමුහුර්තකරණය අවශ්‍ය නොවේ. අපහසුතා සමාන්තරකරණය (embarrassing parallelism) වර්ගයේ වැඩසටහන් ඉතා කලාතුරකින් සමමුහුර්තකරණය කරන අතර ස
මහරවිට එසේ කිරීමක් කිසිවිටෙකවත් අවශ්‍ය නොවේ.සංස්ථිතික ආකෘති (Consistency models)සමාන්තර පරිගණනය සදහා යොදා ගන්නා ක්‍රමලේඛන භාෂා සහ දෘඩාංග සදහා සංස්ථිතික ආකෘතියක් තිබීම වැදගත් වේ. මෙම ආකෘතිය මගින් පරිගණක මතකය මෙහෙයවිය යුතු ආකාරය පිළිබඳව සහ ප්‍රතිඵල දියයුතු ආකාරය පිළිබඳව නීති සහ කොන්දේසි සකසයි.සංස්ථිතික ආකෘති අතර මුලින්ම පැමිණි ආකෘති වලින් එකක් ලෙස ලෙස්ලි ලැම්පෝර්ට්ගේ (Leslie Lamport) අනුක්‍රමික සංස්ථිතික ආකෘතිය (sequential consistency) හැදින්විය හැක. අනුක්‍රමික සංස්ථිතිය යනු සමාන්තර පරිගණන වැඩසටහනක කොටසක් වන අතර එමගින් ලැබෙන ප්‍රතිඵල අනුක්‍රමික පරිගණක වැඩසටහනක ප්‍රතිඵල වලට සමාන වේ[14].මෘදුකාංග ගණුදෙණුකාර මතකය යනු සංස්ථිතික ආකෘතියෙහි බහුලව භාවිතාවන අකාරයකි. මෘදුකාංග ගණුදෙණුකාර මතකය මගින් දත්ත කළමනාකරණ පද්දතියෙන් (Database management system) තාවකාලිකව තොරතුරු ලබාගනී. මෙසේ තොරතුරු/ දත්ත ලබාගැනීම සදහා පරමාණුක ගනුදෙනු (atomic transactions) සදහා වූ සංකල්පය යොදාගනී.ෆ්ලින්ගේ වර්ගීකරනය (Flynn's taxonomy)සමාන්තර පරිගණක සහ අනුක්‍රමික පරිගණක සදහා මුලින්ම වර්ගීකරණයක් ඉදිරි
පත් කරනලද්දේ මයිකල් ෆ්ලින් (Michael J. Flynn) විසිනි. එය ෆ්ලින්ගේ වර්ගීකරණය නමින් හැදින්වේ. ඔහු ඒවා වර්ගීකරනය කරන ලද්දේ ඒවා භාවිතයට ගන්නා විධාන ගණන අනුවයි. එනම් එම විධාන භාවිත කරන්නේ ඒකීය දත්ත කට්ටලද නැතහොත් බහු දත්ත කට්ටලද යන්න මතයි. vteFlynn's taxonomy Single instructionMultiple instructionSingle dataSISDMISDMultiple dataSIMDMIMDThe single-instruction-single-data (SISD) යන වර්ගීකරණය අදාල වන්නේ මුල් කාලීන අනුක්‍රමික වැඩසටහන් සදහායි. The single-instruction-multiple-data (SIMD) වර්ගීකරණය අනුව එකම මෙහෙයුමක් පුන පුනා භාවිතයෙන් විශාල දත්ත ප්‍රමාණයක් සකසනය කිරීම මෙහිදී සිදුවේ. මේවා බහුලව භාවිතා වන්නේ ඒකීය සැකසුම් (signal processing) වැඩසටහන් වලයි. Multiple-instruction-single-data (MISD) යනු ඉතා කළාතුරකින් යොදාගන්නා වර්ගීකරණයක් වන අතර වැඩසටහන් කීපයක් මගින් පමණක් මෙය යොදාගනී. Multiple-instruction-multiple-data (MIMD) යන වැඩසටහන් සමාන්තර පරිගණනයේ බහුලවම යෙදෙන වැඩසටහන් වර්ගය වේ.අනුවර්තී වාදයේ ප්‍රභේදබිටු මට්ටමේ අනුවර්තී වාදය (Bit-level parallelism)[සංස්
කරණය]1970 සිට 1986 වනතෙක් කාලය තුළ VLSI (very-large-scale integration) පරිගණක චිප වල පැමිණීමත් සමග පරිගණක නිර්මාණශිල්පයේ දියුණු වීම පරිගණක වචන විශාලත්වය (computer word size) දෙගුණ කිරීම මත තීරණය විය[15]. එනම් දත්ත සකසනයකට එක් චක්‍රයක් සදහා මෙහෙයවිය හැකි තොරතුරු ප්‍රමාණය මත තීරණය විය. වචනයක විශාලත්වය වැඩි කිරීමත් සමග එමගින්  දත්ත සකසනය මගින් පිළිපැදියයුතු උපදෙස් ප්‍රමාණය අඩු විය.  අතීතයේ සිට බිටු 4 (4-bit) ක්‍ෂුද්‍ර දත්ත සකසන බිටු 8 (8-bit) සහ බිටු 16ත් (16-bit)ඉන්පසු බිටු 32ත් (32-bit) භාවිතා කරන ක්‍ෂුද්‍ර දත්ත සකසනත් භාවිතයට පැමිණිනි. මෙම නැඹුරුව බිටු 32 ක්‍ෂුද්‍ර දත්ත සකසන හදුන්වාදීමත් සමග අවසන් විය. බිටු 32 වචන විශාලත්වය ඉන්පසු දශක දෙකක් තිස්සේම සම්මතයක් ලෙස පරිගණනයේදී භාවිත කළද මෑතකාලීනව පැමිණි බිටු 64 (64-bit) තාක්ෂණය (x86-64 architectures) මගින් බිටු 32 තාක්ෂණය අභිබවනු ලැබීය.විධාන මට්ටමේ අනුවර්තී වාදය (Instruction level parallelism)IF = Instruction Fetch/විධාන කැඳවීම, ID = Instruction Decode/විකේත කිරීම, EX = Execute/ක්‍රියාකාරී කරවීම, MEM = Memory access/මතකයට ඇතු
ලු කිරීම, WB = Register write back/නැවත ලිවීමයි)පරිගණක වැඩසටහනක් යනු කෙටියෙන් ගත්කළ විධාන ධාරාවක් දත්ත සැකසුම් ඒකකයක් මගින් සකස් කිරීමයි. මෙම විධාන නැවත පෙලගැස්වීමත් එක් කිරීමත් කර ලැබෙන ප්‍රතිථල වල වෙනසකින් තොරව සමාන්තරව ක්‍රියාකරවීම විධාන මට්ටමේ අනුවර්තී වාදය ලෙස හැදින්වේ. 1980 දශකයේ මැද භාගයේ සිට 1990 දශකයේ මැදි භාගය දක්වා පරිගණක නිර්මාණශිල්පයේ කැපී පෙනෙන අංගයක් ලෙස මෙය හැදින්වියහැක[16].නවීන දත්ත සකසන සතුව අදියර කීපයකින් යුතු විධාන නල මාර්ග (instruction pipelines) දැකියහැක. මෙසේ ඇති සෑම අදියරකදීම දත්ත සකසනය මගින් කරන කාර්යය අදාල නල මාර්ගය අනුව වෙනස් වේ. N අදියරේ නල මාර්ග වලට N සං‍ඛ්‍යාවක් වෙනස් විධාන සමාප්තියේදී සටහන් කළහැක.  මෙසේ නලමාර්ගකරනය සදහා හොදම උදාහරණයක් ලෙස RISC දත්ත සකසනය හැදින්වියහැක. මෙහි ක්‍රියාවලි අදියර 5 කින් යුතු විය. ඒවා නම් විධාන කැඳවීම, විකේත කිරීම, ක්‍රියාකාරී කරවීම, මතකයට ඇතුල් කිරීම සහ නැවත ලිවීමයි.(instruction fetch, decode, execute, memory access, and write back). පෙන්ටියම් 4 වර්ගයේ දත්ත සකසන වල මෙසේ පියවර 35 අඩංගු විය[17]. අදියර 5ක නලමාර්ගික සුපිරි අදිශ ද
ත්ත සකසන (superscalar) වලට එක් චක්‍රයක් සදහා විධාන දෙකක් නිකුත් කළහැක. මේ නිසා ඕනෑම අදියරකදී විධාන දෙකක් තිබියහැක. මෙලෙස විධාන 10 දක්වා එකවිට සකසනය කළහැක. නලමාර්ගකරණය මගින් මෙහෙයවන විධාන මට්ටමේ අනුවර්තී වාදයට අමතරව සමහර දත්ත සැකසුම් ඒකක වලට එකවරකට විධාන එකකට වඩා දියහැක. මේවා සුපිරි අදිශ දත්ත සකසන ලෙස හදුන්වයි. මෙහිදී දත්ත වල පරායත්තතාවක් (data dependency) නොමැති නම් විධාන කන්ඩායම් ගතකළහැක. මෙසේ අනුක්‍රමණයකින් තොර විධාන මට්ටමේ අනුවර්තී වාදය ගොඩනැගියහැකි බහුලව යොදා ගන්නා ක්‍රම ශිල්ප දෙකක් ලෙස Scoreboard සහ Tomasulo යන ඇල්ගොරිතම හැදින්වියහැක.අදියර 5ක නලමාර්ගික සුපිරිඅදිශ දත්ත සකසන (superscalar) වලට එක් චක්‍රයක් සදහා විධාන දෙකක් නිකුත් කළහැක. මේ නිසා ඕනෑම අදියරකදී විධාන දෙකක් තිබියහැක. මෙලෙස විධාන 10 දක්වා එකවිට සකසනය කළහැක.දත්ත අනුවර්තී වාදය (Data parallelism)දත්ත අනුවර්තී වාදය යනු ලූප සහිත වැඩසටහන් සදහා වන සමාන්තරකරණයකි. මෙමගින් එකිනෙකට වෙනස් පරිගණන මාර්ග හරහා සමාන්තර දත්ත පරිවහනය ඉලක්ක කරයි. ලූප (program loops) සමාන්තරකරණය මගින් විශාල දත්ත ආකෘති සදහා එකිනෙකට සමාන මෙහෙයුම්
අනුක්‍රමණ දියත් කිරීම සිදුකරයි. විශාල වශයෙන් විද්‍යාත්මක සහ ඉන්ජිනේරු වැඩසටහන් ඉදිරිපත් කිරීම සදහා දත්ත අනුවර්තී වාදය යොදාගනී[18]. ලූපයක් මගින් ගෙනයනු ලබන පරායත්තතාවය යනු ලූපීය අනුශ්‍රේණියකක් පෙර ප්‍රතිඵල මත රදාපැවතීමයි. මේ නිසා ලූපයක් මගින් ගෙනයනු ලබන පරායත්තතාවය මගින් සමාන්තරකරණය අඩාල කරයි. පහත දැක්වෙන pseudocode දෙස බලන්න.1:    PREV1 := 02:    PREV2 := 14:    do:5:       CUR := PREV1 + PREV26:       PREV1 := PREV27:       PREV2 := CUR8:    while (CUR < 10)මෙම ලූපය සමාන්තරගත කළ නොහැක. එයට හේතුව නම් CUR , PREV2 සහ PREV1 මත රදා පවතින බැවිනි. මේ අයුරින් සෑම ප්‍රතිඵලයක්ම කලින් ප්‍රතිඵලය මත රදා පවතින නිසා මෙය සමාන්තරගත කළ නොහැක. මෙසේ ගැටලුවේ ප්‍රමාණය විශාල වන තරමට දත්ත අනුවර්තී වාදයද වැඩි වේ[19].ක්‍රියා අනුවර්තී වාදය (Task parallelism)ක්‍රියා අනුවර්තී වාදය යනු සමාන්තර පරිගණන වැඩසටහනක දැකියහැකි ගති ලක්ෂණයකි. එයින් කියවෙන්නේ එකම හෝ වෙන වෙනස් දත්ත කට්ටලයක් භාවිතයෙන් එකිනෙකට සම්පූර්ණයෙන් වෙනස් ගණනය කිරීම් කළහැකි බවයි. මෙය දත්ත සමාන්තරකරණයෙන් වෙනස් වන්නේ ඒවායේ සිදුවන්න
ේ එකම දත්ත කට්ටලයේ එකම ගණනය කිරීම් සිදුවන බැවිනි. වැඩ සමාන්තරකරණය සාමාන්‍යයෙන් ප්‍රශ්නයේ විශාලත්වය සමග වැඩි නොවේ.දෘඩාංගමතකය සහ සන්නිවේදනයA logical view of a Non-Uniform Memory Access (NUMA) architecture. Processors in one directory can access that directory's memory with less latency than they can access memory in the other directory's memory.සමාන්තර පරිගණක ප්‍රභේද (Classes of parallel computers)සමාන්තර පරිගණක ඒවායේ දෘඩාංග සමාන්තරකරණය සදහා දක්වන සගයෝගය මත වර්ග කීපයකට වෙන්කළ හැක. මෙම වර්ගීකරණය සාමාන්‍ය පරිගණක වර්ගීකරනයටද සමීප සබඳතා දක්වයි. උදාහරණ ලෙස කොට්ඨාශ පරිගණනය සමාන්තර පරිගණනයේ මෙන්ම සමමිතික පරිගණනයේදීද දැකියහැක. බහු හර පරිගණනය (Multicore computing)බහු හර දත්ත සකසනයක් තුළ දත්ත සැකසුම් ඒකක එකකට වඩා වැඩි ගණනක් එකම චිපයේ අඩංගු කර තනා ඇත. බහු හර (core) දත්ත සකසනයකට එකවර විධාන කීපයක් නිකුත්කළහැක. එමෙන්ම සෑම බහු හර දත්ත සකසනයකටම super-scalar  උපාංගයක් ලෙසද ක්‍රියා කළහැක. එනම් සෑම හරයකටම එකම විධාන ගලායාමකින්ම විධාන කට්ටල කීපයක් නිකුතකළ හැක.
බහුනූල් පරිගණනය මෙම තාක්ශණයට කලින් පැවති ව්‍යාජ බහු හර තාක්ෂණයයි. SonyPlayStation 3 ක්‍රීඩා උපාංගය සදහා සකසන ලද IBM සමාගමේ Cell ක්‍ෂුද්‍ර සකසනය මෙසේ සකසනලද බහු හර සකසනයකි.සමමිතික බහුසකසනය (Symmetric multiprocessing)සමමිතික බහුසකසනයක් යනු එකම මතකයක් හවුලේ භාවිතයට ගන්නා එක සමාන දත්ත සකසන රාශියක එකතුවකි[20]. මෙහි තාක්ශණික ශිල්පයට (bus architectures) අනුව දත්ත සලසන 32 කට වැඩි ගණනක් එකිනෙක සම්බන්ද කළනොහැක[21]. මෙසේ විශාල දත්ත සැකසුම් ගණනක් යොදා නොගන්නා නිසාත් විශාල පරිගණක මගින් ලබාගන්නා කලාප පළල අඩු නිසාත් මේවා වියදම් කරන මුදලේ ප්‍රමාණය අනුව ඉතා කාර්යක්‍ෂම වේ.ව්‍යාප්ත පරිගණනය (Distributed computing)ව්‍යාප්ත පරිගණක (නොහොත් ව්‍යාප්ත මතක බහු දත්ත සකසන) යනු දත්ත සකසනයන් එකිනෙක ජාලගත කරනලද ව්‍යාප්ත මතක පරිගණක පද්දති වේ. මේවා විශාල භූගෝලීය ප්‍රදේශයක පතුරවාලිය හැකිය. පොකුරු පරිගණනය (Cluster computing)Beowulf පරිගණක පොකුරුපරිගණක පොකුරක් යනු එකිනෙකට ලිහින්ව සම්බන්දිත එක්ව වැඩ කරන පරිගණක රාශියක එකතුවකි[22]. පොකුරු පරිගණනයේදී ස්වාධීන පරිගණක කීපයක් එකිනෙක ජාලගත
කර ඇති අතර ඒවාට යොදන භාරය නිසි ලෙස තුලනය කිරීමට (load balancing) නම් එම පරිගණක සමමිතික නොවියයුතුය. ප්‍රචලිතම පොකුරු පරිගණක වර්ගය Beowulf නම් පොකුරු පරිගණකයයි. වාණිජ පරිගණක කීපයක් (commercial off-the-shelf) TCP/IP Ethernet වර්ගයේ ප්‍රාදේශීය ජාලයකට (local area network) සම්බන්ද කිරීමෙන් මෙම ජාල තනා ඇත[23]. මෙම තාක්ෂණය දියුණු කරන ලද්දේ Thomas Sterling සහ Donald Becker විසිනි. ලොව වේගවත්ම සුපිරි පරිගණක 500 (TOP500) අතරින් අති බහුතරය මෙසේ පොකුරු පරිගණක ලෙස සැකසූ සුපිරි පරිගණක වේ[24].විශාලිත සමාන්තර පරිගණනය (Massive parallel processing)Blue Gene/L සුපිරි පරිගණකයේ කැබුනෙට්ටුවක්, 2008 වසරේදී ලොව පස්වන ප්‍රභලතම සුපිරි පරිගණකය ලෙස මෙය නම් කෙරිනි. TOP500 . Blue Gene/L යනු massively parallel processor වර්ගයේ සමාන්තර පරිගණන යන්ත්‍රයකි.විශාලිත සමාන්තර දත්ත සකසනයක් යනු ජාලගත කරනලද  දත්ත සකසන රාශියක් සහිත තනි පරිගණකයකි. පොකුරු පරිගණකවල ලක්ශණ රාශියක් මෙම පරිගණක විශේෂයේද දැකියහැක. එහෙත් පොකුරු පරිගණනයේදී මෙන් නොව විශාලිත සමාන්තර පරිගණකවල විශේෂිත වූ සම්බන්දක ජාල දැකියහැක. එමෙන්ම මේවා පොකුරු
පරිගණන පද්දති වලට වඩා විශාල වේ. දත්ත සැකසුම් ඒකක 100 කට වඩා විශාල සංඛ්‍යාවක් ඇති අතර සෑම දත්ත සකසනයක් සදහාම මෙහෙයුම් පද්දතියක් සහ වැඩසටහන් වෙන වෙනම අඩංගු වේ[25]. මේවායේ සෑම උප පද්දතියක්ම එකිනෙකට අධිවේගීව සම්බන්ද වී ඇත.[26]කොට්ටාශ පරිගණනය (Grid computing)කොට්ටාශ පරිගණනය යනු සමාන්තර පරිගණනයේ වඩාත්ම පැතිරුන අවස්ථාවයි. මෙහිදී සිදුවන්නේ යම් දෙනලද ගැටලුවක් නිරාකරණය සදහා අන්තර්ජාලය ඔස්සේ පරිගණක රාශියක් ජාලගත වී සන්නිවේදනය කිරීමයි. එහෙත් අන්තර්ජාල පහසුකම් වල ඇති අඩු කලාප පළල නිසාත් අධික ගුප්තතාවය (latency) නිසාත් විශාල ප්‍රමාණයේ සමාන්තරික ප්‍රශ්න (embarrassingly parallel) සදහා පමණක් මෙම ක්‍රමය යොදාගනී. කොට්ටාශ පරිගණන වැඩසටහන් විශාල සංඛ්‍යාවක් අතරින් SETI@home සහ  Folding@Home ව්‍යාපෘතීන් වඩාත් ප්‍රකට ඒවායි[27]. බොහෝ කොට්ටාශ පරිගණන වැඩසටහන් මගින් යෙදුම් සහ පද්ධති මෘදුකාංග අතර අතරමැදියෙකු ලෙස ක්‍රියා කරන මෘදුකාංග (middleware) තම කටයුතු පහසු කරගැනීමට යොදාගනී. මේවා පරිගණක මෙහෙයුම් පද්දතිය සහ වැඩසටහන් අතර අතමැදියෙකු ලෙස ක්‍රියා කරමින් ජාලගත සම්පත් කළමනාකරණය සහ මෘදුකාංග අතුරුමුහුණත් ප්
‍රමිතිගත කිරීම සිදුකරයි. කොට්ටාශ පරිගණනය සදහා යොදාගන්නා බහුලතම middleware වැඩසටහන Berkeley Open Infrastructure for Network Computing (BOINC) නම් වේ.විශේෂිත සමාන්තර පරිගණනය (Specialized parallel computers)සමාන්තර පරිගණන ක්ෂේත්‍රයේ යම් කොටසකට පමණක් විශේෂිත වූ සමාන්තර පරිගණන උපකරණද ඇත.ඒවා තමන්ට විශේෂිත වූ විෂය පථයක ගැටලු නිරාකරණය සදහා විශේෂිත වී ඇත. Reconfigurable computing with field-programmable gate arraysනැවත සැකසියහැකි පරිගණනය (Reconfigurable computing) යනු field-programmable gate array (FPGA) හි භාවිතයකි.  FPGA මගින් යම් ඉලක්කගත කර්යයක් සඳහා තමන් විසින්ම යලි තම පරිපථ සකසා ගැනීම සිදුකරයි.FPGA උපකරණ ක්‍රමලේඛනය කිරීම සදහා VHDL හෝ Verilog වැනි දෘඩාංග විස්තරකරණ (hardware description languages) භාෂා යොදාගනී. කෙසේ වෙතත් එම ක්‍රමලේඛන භාෂා වලින් ක්‍රමලේඛනය කිරීම ඉතා වෙහෙසකාරී වියහැක.  මේ නිසා සමාගම් කීපයක් මගින් C සිට HDL යා කරන ක්‍රමලේඛන භාෂා කීපයක් සාදනලදී. C ක්‍රමලේඛන භාෂාව බොහෝ දෙනාට හුරුපුරුදු නිසා මෙම නව භාෂාව මගින් ක්‍රමලේඛනය කිරීම පසු විය. මෙසේ සාදන ලද භාෂ
ා අතරින් ප්‍රචලිත භාෂා අතර Mitrion-C, Impulse C, DIME-C, සහ Handel-C ප්‍රමුඛවේ. AMD සමාගම මගින් එහි HyperTransport තාක්ෂණය තෙවන පාර්ශව සදහා විවෘත කිරීමත් සමගම අධි කාර්යසාධක නැවත සකස් කළහැකි පරිගණනය තවත් දියුණුවක් ලැබීය.ග්‍රැෆික දත්ත සකසන භාවිතයෙන් පොදු අරමුණු සදහා පරිගණනය (GPGPU)Nvidia Tesla GPGPU - ග්‍රැෆික් කාඩ්පතGeneral-purpose computing on graphics processing units (GPGPU)ග්‍රැෆික දත්ත සකසන භාවිතයෙන් පොදු අරමුණු සදහා පරිගණනය යනු මෑතකාලීනව බෙහෙවින් ප්‍රකට වූ පරිගණක ඉන්ජිනේරු ගවේශණයකි. ග්‍රැෆික දත්ත සකසන විශේෂයෙන්ම සකසා ඇත්තේ ග්‍රැෆික දත්ත සකසනය සදහායි. දත්ත සමාන්තරව මෙහෙයවීමට, විශේෂයෙන්ම රේඛීය වීජ ගණිතයේ (linear algebra matrix)එන මෙහෙයුම් සඳහා ග්‍රැෆික දත්ත සකසන භාවිතවේ.මුල්කාලීනව ග්‍රැෆික දත්ත සකසන භාවිතයෙන් පොදු අරමුණු සදහා පරිගණන වැඩසටහන් භාවිතා කළේ සාමාන්‍ය ග්‍රැෆික දත්ත සකසන භාවිත කරන වැඩසටහන් අතුරු මුහුණතයි. කෙසේ වෙතත් ග්‍රැෆික දත්ත සකසන වල භාවිතය සදහාම නව ක්‍රමලේඛන වැඩසටහන් සහ වේදිකා Nvidia (CUDA) සහ AMD (CTM) වැනි සමාගම් මගින් හදුන්වා දෙනලදී. අනෙක් ක්‍රමලේඛන
භාෂා අතර BrookGPU, PeakStream සහ RapidMind ප්‍රමුඛ වේ. සාමාන්‍ය දත්ත සැකසුම් ඒකක සහ ග්‍රැෆික දත්ත සැකසුම් ඒකක සඳහා පොදු රාමුවක් (framework) consortium Khronos සමූහය මගින් OpenCL නමින් හදුන්වාදුන් අතර Apple, Intel, Nvidia සහ අනෙකුත් සමාගම් එම සම්මතයට අනුව තම නිෂ්පාදන සිදුකරයි.වැඩසටහන් විශේෂිත සංඝත පරිපථ (Application-specific integrated circuits)වැඩසටහන් විශේෂිත සංඝත පරිපථ කීපයක්ම සමාන්තර පරිගණනය සඳහා යෙදවීම් කර ඇත[28][29][30].ASIC (වැඩසටහන් විශේෂිත සංඝත පරිපථ - Application-specific integrated circuits) විශේෂයෙන්ම යම් වැඩසටහනක් සදහා සකසා ඇති නිසා ඒවා අදාල ක්‍රියාව සදහා උපරිම කාර්යක්‍ෂමතාවක් පෙන්වයි. කෙසේ වෙතත් ASIC සාදනු ලබන්නේ X කිරණ ලිතෝ මුද්‍රණය (X-ray lithography) මගින් වන අතර මෙය බෙහෙවින් මිල අධික තාක්ශණයකි[31]. ASIC වල කාර්යක්ෂමතාවය වැඩි උවද පොදු අරමුණු සදහා පරිගණනය මූවර්ගේ නීතියට අනුව වේගයෙන් දියුණු වන නිසා මෙම කාර්යක්ශමතාවය එතරම් ඵලදායි නැත. අධික මූලික වියදමත් පොදු අරමුණු සදහා පරිගණනය මගින් ASIC අභිබවනය කරන නිසාත් මේවා බහුලව දැකියහැකි නොවුවද වර්තමානයේ පෙටා ෆ්ලොප්ස්
මට්ටමේ සුපිරි පරිගණක වලද (RIKEN MDGRAPE-3) මෙම තාක්ශණය දැකියහැක.දෛශීය දත්ත සකසන (Vector processors)The Cray-1 අතිශයින් ජනප්‍රිය වු vector පරිගණක වර්ගයකි.දෛශීය දත්ත සකසන යනු එකම විධානය විශාල දත්ත කට්ටලයක සම්පූර්ණ කළහැකි වර්ගයේ පරිගණක වර්ගයකි. උපුටා ගැනීම: "Vector processors have high-level operations that work on linear arrays of numbers or vectors. An example vector operation is A = B × C, where A, B, and C are each 64-element vectors of 64-bit floating point numbers."[32] They are closely related to Flynn's SIMD classification.[32]Cray පරිගණක පද්දති තම දෛශීය දත්ත සකසන හැකියාව නිසා 1970 සහ 1980 දශක වලදී මහත් ජනප්‍රියත්වයක් ලද්දේය. එසේ වෙතත් අද මෙම දෛශීය දත්ත සකසන භාවිතයේ නොමැත. නූතන දත්ත සකසන විධාන පද්දති (processor instruction sets) වලද යම් තරමකින් දෛශීය දත්ත සකසන විධාන එක්කර ඇත. AltiVec සහ Streaming SIMD Extensions උදාහරණ වේ.මෘදුකාංගසමාන්තර පරිගණන භාෂාසමාන්තර පරිගණනය සඳහා ‍සමගාමී ක්‍රමලේඛන භාෂා (Concurrent programming languages),  පුස්තකාල (Lib
rary), වැඩසටහන් අතුරුමුහුණත් (Application programming interface (APIs)) සහ සමාන්තර ක්‍රමලේඛන ආකෘති (parallel programming models) තනා ඇත. මෙම ක්‍රමලේඛන භාෂා ඒවායේ දත්ත නිර්මාන ශිල්පය සදහා උපයෝගී කරගන්නා උපකල්පන පාදක කරගෙන විවිධ කොටස් වලට බෙදේ. ඒවා නම් හවුල් මතකය (shared memory), ව්‍යාප්ත මතකය (distributed memory) හෝ හවුල් ව්‍යාප්ත මතකයයි (shared distributed memory).හවුල් මතක ක්‍රමලේඛන භාෂා එකිනෙක අතර සන්නිවේදනය කරනුයේ හවුල් දත්ත විචල්‍ය මගිනි. ව්‍යාප්ත මතකය මේ සදහා පණිවිඩ පරිවහන (message passing) ක්‍රමය අනුගමනය කරයි. POSIX නූල් (thread) සහ OpenMP යනු මේ සදහා බහුලව යොදාගන්නා මතක වැඩසටහන් ක්‍රමලේඛන අතුරුමුහුණත්ය. MPI (Message Passing Interface) යනු මෙසේ තොරතුරු ගෙනයාම සදහා යොදාගන්නා ප්‍රමුඛතම  තොරතුරු පරිවහන ක්‍රමයයි[33]. සමාන්තර පරිගණනය සදහා යොදාගන්නා තවත් සංකල්පයක් වන්නේ අනාගත ගිවිසුම් සංකල්පයයි (Futures and promises). මෙයින් කියවෙන්නේ යම් වැඩසටහනක් මගින් අනෙක් වැඩසටහන සදහා අවශ්‍ය දත්ත අනාගතයේදී සැපයීම සදහා පොරොන්දු වීමයි. OpenHMPP යනු දිශානුගත පරිගණක ක්‍රමලේඛන ආකෘතියකි. එමගින් කාර්යක
්ෂම දෘඩාංග ත්වරණයක් සදහා  කාරක රීති (syntax) සැපයීමත්, දෘඩාංග වල සිට දත්ත එහා මෙහා ගෙනයාම දියුණු කිරීමත් සිදුකරයි.ස්වයංක්‍රීය සමාන්තරකරණයඅනුක්‍රමික වැඩසටහනක් සංග්‍රාහකයක් (compiler) මගින් ස්වයංක්‍රීයව සමාන්තරකරණය කළහැකි නම් එය සමාන්තර පරිගණනයේදී ඉතා වැදගත් වේ. ස්වයංක්‍රීය සමාන්තරකරණය සදහා දශක ගණනාවක සිට පර්යේශණ කළද එය තවමත් සාර්ථක මට්ටමක නොපවතී[34]. සාමාන්‍ය භාවිතයේ ඇති සමාන්තරකරණය සදහා වූ ක්‍රමලේඛන භාෂා සම්පූර්ණ ලෙස සමාන්තර භාවයෙන් හෝ අර්ධ සමාන්තර භාවයෙන් යුතුවේ. මේවායේ සංග්‍රාහක වෙත විධාන නිකුත් කිරීම මගින් සමාන්තරගතකරණක කරගතයුතුය. කෙසේ වෙතත් සම්පූර්ණයෙන්ම සමාන්තරගත පරිගණක ක්‍රමලේඛන භාෂා ඇත්තේ කීපයක් පමණි. ඒවා නම් SISAL, Parallel Haskell සහ ( FPGAs සදහා) Mitrion-C.වැඩසටහන් සමීක්ශණය (Application check-pointing)පරිගණකයක් විශාල සහ සංකීරණ වන තරමට එහි බිදවැටුමක් හෝ වැරැද්දක් වීමේ සම්භාවිතාවයද වැඩි වේ. වැඩසටහන් සමීක්ශණය යනු පරිගණක පද්දතියක් මගින් දැනට පවතින විචල්‍යයන් සහ සම්පත් වෙන්කරගෙන ඇති ආකාරය පිළිබඳව තබාගන්න සටහනයි. කුමන ආකාරයක හෝ වැටසටහන් බිදවැටුමකදී මෙම දත