**விரவல் கணினி செய்முறை** அல்லது **பரவிய கணித்தலியல் (Distributed computing)** என்பது கணிப்பொறி அறிவியலின் ஒரு பிரிவாகும். இதில் பல செய்நிரல்கள் (programs), கணிப்பொறி வலையமைப்பு (computer network) மூலம் ஒன்றுக்கொன்று தொடர்பு கொண்டு தரவுகளையும் (data), ஏனைய செய்திகளையும் (message) பகிர்ந்து தம் பணிகளைச் செய்து முடிக்கின்றன. **பரவிய கணித்தலியலில்** பயன்படுத்தப் படும் செய்நிரல்கள் **பரவிய** **செய்நிரல்கள் (distributed programs)** என்று அழைக்கப் படுகின்றன**.**  ஆனால், செய்முறையில் ஒரு சில நேரங்களில், பல கணினிகளைப் பயன்படுத்துவதற்குப் பதிலாக**,** ஒரே ஒரு கணினியைப் பயன் படுத்துவதும் உண்டு.

முகவுரை
-------

*பரவிய* என்ற சொல் முதலில் *நிலத்தில் பரவி உள்ள* (geographically distributed) என்ற பொருளில் வந்தது. எடுத்துக் காட்டாக, *பரவிய அமைப்பு* (distributed system) என்றால் பல இடங்களில் பரவி அமைந்துள்ள ஓர் அமைப்பு என்று பொருள் பட்டது.. அது போலவே, *பரவிய செய்நிரல்கள்* (distributed programs) என்பது பல இடங்களில் அமைந்து உள்ள கணினிகளில் இயங்கும் செய்நிரல்களையும், *பரவிய படிமுறை* (distributed algorithm) என்பது அச் *செய்நிரல்களில்* அமைந்துள்ள *படிமுறைகளையும்* குறித்தன. இப்போது *பரவிய* என்ற சொல் மேலும் பொதுப்படையான பொருளில் பயன்படுத்தப் படுகின்றது. எடுத்துக் காட்டாக, பல தனித்தியங்கும் செய்முறைகள் (autonomous processes), ஒரே கணிப்பொறியில் இயங்கி, தங்களுக்குள் தரவுகளையும் செய்திகளையும் பகிர்ந்துகொண்டு இருக்கையில், அவை *பரவிய* செய்முறைகள் என்று அழைக்கப் படுகின்றன.

பரவிய அமைப்புகளை விவரிக்க பல வகையான வரையறைகள் இருக்கும் நேரத்தில்,. பின்வரும் வரையறு பண்புகள் பொதுவாக பயன்படுத்தப்படுகின்றன:

* ஒரு பரவிய அமைப்பில், பல கணிப்பொறிகள் இருக்கும். ஒவ்வொன்றும் மற்றவற்றின் துணையின்றி தனித்தியங்கும் தன்மை படைத்தனவாக இருக்கும். ஒவ்வொன்றுக்கும் சொந்தமான நினைவகங்கள் இருக்கும்.
* தேவை படும் பொது, ஒரு கணிப்பொறி மற்ற கணிப்பொறிகளுடன் தொடர்பு கொண்டு தேவையான தரவுகளைப் (data) பரிமாறிக் கொள்கின்றது.

இந்தக் கட்டுரையில், இந்தக் கணிப்பொறிகள் **கணுக்கள்** (nodes) என்றும் அழைக்கப் படும். 

இப்படிப்பட்ட பரவிய அமைப்பில், அனைத்துக் கணிப்பொறிகளும் ஒன்றாகக் கூட்டு சேர்ந்து ஒரு பணியைச் செய்யும் வல்லமை படைத்தவையாக இருக்கும். மேலும் ஒவ்வொன்றும் தனித்து இயங்கும் திறன் கொண்டவையாகவும் இருக்கும்.  பரவிய அமைப்பின் நோக்கம் என்னவென்றால், கணிப்பொறிகள் ஒவ்வொன்றும் தம்மிடம் உள்ள வளங்களை (resources) மற்றவற்றிடம் பகிர்ந்து கொண்டு, தங்களால் தனித்து செய்ய இயலாத பணிகளைக் கூட்டாகச் சேர்ந்து செய்யும் வலிமை உள்ளவையாக ஆக வேண்டும் என்பதே ஆகும். அதாவது, தங்களுக்குக் கொடுக்கப்பட்ட தரவுகளை (data input) ஒவ்வொரு கணினியும் தங்களுக்குள் பிரித்து, அதை வைத்து தங்கள் வெளியீடுகளை (output) கணித்து வெளியிட வேண்டும். 

பரவிய அமைப்புகளின் மற்ற குறிப்பிடத்தக்க பண்புகள் பின்வருமாறு:

* ஏதேனும் ஒரு கணினியில் தவறுகள் நடந்தால், அந்தத் தவறினால் மற்ற கணினிகள் பாதிப்பு அடையக் கூடாது. குறிப்பாக, அந்த முழு *பரவிய அமைப்பு*ம் கூடிய வரை தம்மால் ஆன அளவு சரியாகவே இயங்க முயல வேண்டும்.
* பொதுவாக, இந்த பரவிய அமைப்பின் கட்டமைப்பு (structure) (அதாவது, எத்தனைக் கணிப்பொறிகள் உள்ளன, எவ்வாறு அவை ஒன்றோடு ஒன்றாய் இணைக்கப் பட்டுள்ளன, எவ்வளவு விரைவாக அவை இயங்குகின்றன என்பன போன்றவை ) முன்கூட்டியே தெரிவதில்லை. மேலும், இந்த பரவிய அமைப்பு இயங்கிக் கொண்டிருக்கும் போதே, அதன் கட்டமைப்பு மாற்றி அமைக்கப் படலாம்.
* ஒவ்வொரு கணினியும் இந்த அமைப்பைப் பற்றிய முழு அறிவும் பெற்று இருப்பதில்லை. மாறாக, ஒரு பகுதியை பற்றி மட்டுமே அறிந்து இருக்கும். மேலும், ஒவ்வொரு கணினியும் தனக்கு கொடுக்கப்பட்ட தரவை மட்டுமே பயன் படுத்தி தன் வெளியீடுகளைக் கணிக்க வேண்டும்.

(a)–(b) பரவிய கணிப்பு (c)இணை கணிப்பு 
### இணை கணித்தல், பரவிய கணித்தல்

இணை கணித்தல் (Parallel Computing) என்பது பல கணிப்பொறிகள் ஒரே நேரத்தில் செயலாற்றி, தம் பணிகளைச் செவ்வனே முடிப்பதைக் குறிக்கும். பரவிய கணித்தல் என்பது பல கணினிகள் பல இடங்களில் வைக்கப் பட்டு, இணைக்கப் பட்டு உருவாக்கப் பட்ட அமைப்பு எனலாம். எனவே, பரவிய கணித்தல் என சொல்லும் போது, அதில் இணை கணித்தல் என்ற செயலும் நடக்கின்றது எனலாம்.  எனினும், பொதுவாக இரண்டுக்கும் ஒரு சிறு வேற்றுமை உள்ளது. ஒரு கணினி என்பது ஒரு கணிப்பான் (processor)-உம், ஒரு நினைவகம் (memory)-உம் கொண்டது. 

* பரவிய கணித்தலில் (படத்தில் காட்டியவாறு), ஒவ்வொரு கணினியும் தனித்தனியாக வைக்கப் பட்டு, அவை பின் இணைக்கப் பட்டுள்ளன. அவை இயங்கும் போது, ஒன்றுக்கொன்று சேதிகளை (messages) அனுப்பி, வேண்டிய தரவுகளைப் பகிர்ந்து கொள்கின்றன.
* இணை கணித்தலில், கணினிகள் அனைத்திற்கும் ஒரே ஒரு நினைவகம் தான் இருக்கிறது. அதாவது, இந்த நினைவகத்தை அனைத்து கணிப்பிகளும் பகிர்ந்து கொள்கின்றன. அதனால் இந்த நினைவகம் **பகிர்ந்த நினைவகம்** (shared memory) என்று அழைக்கப் படுகின்றது. இந்த முறையில் கணினிகள் வேண்டிய தரவுகளைப் பகிர்ந்த நினைவகத்தில் வழியாக ஒன்றுக்கொன்று பரிமாறிக்கி கொள்கின்றன. அதாவது, ஒன்றுக்கொன்று சேதிகளை (messages) அனுப்பி, வேண்டிய தரவுகளைப் பகிர்ந்து கொள்வதில்லை.
* பரவிய கணித்தலில், பரவிய படிமுறைகள் (distributed algorithms) நடைமுறை படுத்தப் பட்டிருக்கும். இணை கணித்தலில், இணை படிமுறைகள் (parallel algorithms) நடைமுறை படுத்தப் பட்டிருக்கும்.

வரலாறு
------

"கணினிகள் பல ஒரே நேரத்தில் இயங்கும் போது அவை செய்திகளை தங்களுக்குள் அனுப்பி தரவுகளை பகிர்ந்து கொள்ள இயலும்" என்ற கோட்பாடு, 1960-களில் **இயங்கு தளம்** ( operating system) என்ற மென்பொருளை உருவாக்கும் போது முதன் முறையாகப் பயன்படுத்தப் பட்டது. முதன் முதல் பரவலாக தொடங்கப்பட்ட பரவிய அமைப்பானது 1970களில் கண்டுபிடிக்கப்பட்ட ஈதர்நெட் மூலம் உருவாக்கப்பட்ட இடத்துரி வலையமைப்பாகும்.

1960 ஆம் ஆண்டின் இறுதியில் அறிமுகம் செய்யப்பட்ட ARPANET, இணையத்திற்கு முன்னோடியாக இருந்தது மற்றும் 1970 ஆம் ஆண்டு ஆரம்பத்தில் ARPANET மின்னஞ்சல் உருவாக்கபட்டது. ARPANET இன் மிகப் பெரிய வெற்றி செய்நிரலாக மின்னஞ்சல் இருந்தது. மேலும் பேரளவு பரவிய அமைப்புக்கு எடுத்துக்காட்டாகவும் இது இருந்தது. ARPANET மற்றும் அதன் பின்னோடியான இணையதளம் 1980களில் உலகளாவிய கணினி வலையமைப்புகளாக இருந்த யூஸ்நெட் மற்றும் ஃபிடோநெட், இவைகள் இரண்டும் பரவிய விவாத அமைப்புகளுக்கு உறுதுணையாக இருந்தன.

பரவியகணினி செய்முறைகளை பற்றிய படிப்பு கணிப்பொறி அறிவியலின் பகுதியாக 1970 இறுதி மற்றும் 1980 ஆரம்பங்களில் மாறியது. இந்த துறையின் முதல் கருத்தரங்கம், சிம்போசியம் ஆன் பிரின்ஸிபல்ஸ் ஆப் டிஸ்ட்ரிபியூடேட் கம்ப்யூடிங் (PODC) என்று 1982 ஆம் ஆண்டிலும் இதன் ஐரோப்பிய பகுதி இண்டர்நேசனல் சிம்போசியம் ஆன் டிஸ்ட்ரிபியூடேட் கம்ப்யூடிங் (DISC) என்று 1985 ஆம் ஆண்டிலும் முதன் முதலில் நடைபெற்றது.

பயன்பாடுகள்
-----------

இரண்டு முக்கிய காரணங்களுக்காகபரவிய கணினி செய்முறை மற்றும் பங்கிடப்பட்ட கணிப்புகளை உபயோகப்படுத்துகிறோம். முதலில் இந்த முறையின் இயற்கை பிரயோகங்கங்களுக்கு தொடர்பாடல் வலையமைப்பின் மூலம் பல கணினிகளை இணைக்க *தேவைப்படலாம்*. எடுத்துகாட்டாக ஒரு இடத்தில் உருவாக்கப்பட்ட தகவலானது மற்றொரு இடத்திலும் தேவைப்படுகிறது.

இரண்டாவதாக சில சமயங்களில் ஒரு கணினியை உபயோகிப்பது சாத்தியமாக இருக்கலாம். ஆனால் நடைமுறை காரணங்களுக்காக பரவிய அமைப்புகளை உபயோகிப்பது *பயனுள்ளதாகும்*. உதாரணமாக ஒரு அதிக-திறனுடைய கணினிகளை கொண்டு பெறமுடியாத விளைவுகளை சில குறைந்த-திறனுடைய கணினி கொத்துகள் மூலம் பெற முடியும். பங்கிடப்படாத அமைப்புகளை விட பரவிய அமைப்புகள் மிகவும் நம்பிக்கையானவை. சிறிதளவு தோல்வியும் அதில் ஏற்படுவதில்லை. இவற்றை விட ஒற்றைசார் செயற்படுத்திகளை விட பரவிய அமைப்பானது எளிதாக விரிவாக்கவும் சமாளிக்கவும் வல்லது.

பின்வருவன பரவிய அமைப்புகள் மற்றும் பங்கிடப்பட்ட கணிப்புகளின் உதாரணங்களாகும்.

* தொலைத்தொடர்பு வலையமைப்புகள்:
	+ தொலைபேசி வலையமைப்புகள் மற்றும் கலமுறை வலையமைப்புகள்
	+ இணையத்தை போன்ற கணினி வலையமைப்பு
	+ கம்பியில்லா உணரி வலையமைப்புகள்
	+ வழிபடுத்தும் நெறிமுறைகள்.
* வலையமைப்பு பயன்பாடுகள்:
	+ உலகளாவிய வலை மற்றும் சமமான வலையமைப்புகள்
	+ பெருமளவு மல்டிப்ளேயர் ஆன்லைன் விளையாட்டு மற்றும் மாயமான உண்மை குழுமம்.
	+ பரவிய தரவுதளங்கள் மற்றும் பரவிய தரவுதள முகாமை அமைப்புகள்
	+ வலையமைப்பு கோப்பு அமைப்புகள்.
	+ வங்கி மற்றும் விமான முன்பதிவு அமைப்புகளை போன்ற பரவிய தகவல் செயல்படுத்தும் அமைப்புகள்
* நிகழ் நேர முறை வழியாக்க கட்டுபாடுகள்:
	+ வானூர்தி கட்டுபாட்டு அமைப்புகள்
	+ தொழிலக கட்டுபாட்டு அமைப்புகள்.
* இணையான கணிப்பு:
	+ அறிவியல் கணிப்பு, கொத்து கணிப்பு மற்றும் கட்ட கணிப்புமற்றும் பல தன்னார்வ கணிப்பு திட்டபணிகள், பரவிய கணிப்பு திட்டபணிகளில் பட்டியலைப் பார்க்கவும்.
	+ கணினி வரைவியலில் பரவிய அளிப்பு.

கோட்பாட்டு அடித்தளம்
--------------------

### மாடல்கள்

நிறையப் பணிகளைக் கணினியின் கேள்வி-பதில் முறையில் தானியக்கமாக மாற்ற விரும்புவோம்: நாம் ஒரு கேள்வி கேட்க விரும்புவோம் கணினி அதற்கான பதிலை தர வேண்டும். கோட்பாட்டுக் கணிப்பொறி அறிவியலில், இந்த மாதிரியான பணிகள் கணக்கீட்டுப் புதிர்கள் எனப்படும். பொதுவாக கணக்கீட்டுப் புதிர்கள் *சான்றுகளையும்* ஒவ்வொரு சான்றுகளுக்கான *தீர்வுகளையும்" கொண்டிருக்கும். சான்றுகள் என்பது நாம் கேட்கும் கேள்விகளாகவும், தீர்வுகள் அந்த கேள்விகளுக்கு பதில்களாகவும் இருக்கும்.*

கோட்பாட்டுக் கணிப்பொறி அறிவியலானது எந்த விதமான கணக்கீட்டு புதிர்களை, கணினியின் கணக்கீட்டு கோட்பாடுகள் தீர்க்கிறது மற்றும் கணக்கீட்டு சிக்கல் கோட்பாட்டின் திறன் என்ன என்பதை புரிந்து கொள்ள ஆர்வமாக இருக்கும். பொதுவாக ஒரு பிரச்சனையானது கணினியில் நாம் உருவாக்கிய நெறிமுறை திட்டம் எவ்வாறு சரியான தீர்வை சான்றுக்கு அளிக்கிறது என்றும் சொல்லப்படுகிறது. இவ்வாறு உருவாக்கப்பட்ட நெறிமுறைகள் பொதுவான கணினிகளில் உபயோகப்படும் கணினி செய்நிரல்என்று செயற்படுத்தபடுகிறது: இந்த செய்நிரலானது பிரச்சனை சான்றை உள்ளீடாக பெற்று, சில கணக்கீடுகளைச் செய்து தீர்வை வெளியீடாகத் தருகிறது. பொதுவாக தற்போக்கு அணுகல் எந்திரம் அல்லது உலகளாவிய தூரிங் எந்திரம் ஆகியவற்றை தொடர்ச்சியான பொது-நோக்க கணினியின் சுருக்க மாதிரியாக வைத்து இந்த மாதிரியான செய்நிரல்களை செயல்படுத்த வேண்டும்.

உடன்நிகழ்வு மற்றும் பரவிய கணக்கீட்டு துறைகளின் படிப்புகளில் ஒரே மாதிரியான கேள்விகள் இந்த நிகழ்ச்சியில் பன்மடங்கு கணினி அல்லது வலையமைப்பில் இடையீட்டு நடைமுறையில் உள்ள கணினியில் எந்த கணகீட்டுத் தீர்வுகளில் இப்படிப் பட்ட வலையமைப்பில் தீர்க்கப்படும் தீர்வு எவ்வாறு திறமையாக இருக்கும்? எப்படி இருந்தாலும், "புதிரை தீர்ப்பது" என்பதன் அர்த்தம் உடன்நிகழ்வு அல்லது பரவிய அமைப்புகளில் வெளிப்படையாக இல்லை: எடுத்துக்காட்டாக நெறிமுறை உருவாக்குபவரின் வேலை என்ன, மேலும் தொடர்ச்சியான பொது-நோக்க கணினியில் உடன்நிகழ்வு அல்லது பரவியவைக்கு நிகரானது எவை.

கீழே உள்ள கலந்தாய்வு பல்வகை கணினிகளை மையப்படுத்துகிறது. ஒரு கணினியில் செய்யப்படும் உடன்நிகழ்வு செய்முறை வெளியீடு ஒரே மாதிரியாக இருக்கிறது.

மூன்று பார்வைப்புள்ளிகள் பொதுவாக உபயோகப்படுத்தப்படுகிறது:

பரவிய நினைவக மாதிரியில் உள்ள இணை நெறிமுறைகள்
* அனைத்து கணினிகளும் பரவிய நினைவகத்தை உபயோகிக்கின்றன. நெறிமுறை உருவாக்குபவர் ஒவ்வொரு கணினி செயல்படுத்தும் செய்நிரலை தேர்ந்தெடுப்பார்.
* இணை தற்போக்குப் பெறுவழி அமைப்பு(PRAM) ஒரு கோட்பாட்டு மாதிரியாக உபயோகப்படுகிறது. எப்படி இருந்தாலும், PRAM மாதிரியானது பரவிய நினைவகத்தை ஒத்தியக்க செயல்படுத்து முறையில் அனுமானிக்கிறது.
* நிழல்-உலக பன்மைமுறைவழியாக்க அமைப்புகளின் நடத்தைகளுக்கு ஒரு மாதிரி நெருக்கமாக இருந்து எந்திர அறிவுறுத்தல்களை ஒப்பிடல்-மற்றும்-இடமாற்றம் (CAS) செய்கிறது என்றால் அது *ஒத்தியங்கா பரவிய நினைவகம்*  முறையில் ஆகும். அதிகப்படியான வேலை இந்த மாதிரியில் உள்ளது. இவற்றின் தொகுப்புகளை இலக்கியத்தில் காண முடியும்.

தகவல்-செலுத்து மாதிரியில் இணை நெறிமுறைகள்
* நெறிமுறை உருவாக்குபவர் வலையமைப்பின் கட்டமைப்பு மற்றும் ஒவ்வொரு கணினி இயக்கும் செய்நிரலையும் தேர்வு செய்கிறார்.
* பூலியன் சுற்றுகள் மற்றும் வரிசையாக்கு வலையமைப்புமாதிரிகள் உபயோகப்படுத்தப்படுகின்றன. பூலியன் சுற்றுகள் கணினி வலையமைப்பாக பார்க்கபடுகிறது: ஒவ்வொரு வாயிலும் கணினியாக இருந்து சாதாரண கணினி செய்நிரலை இயக்குகிறது. அதே போல வரிசையாக்கு வலையமைப்பும் கணினி வலையமைப்பாக பார்க்கபடுகிறது: ஒவ்வொரு ஒப்பீட்டுமானியும் கணினி.

தகவல்-செலுத்து மாதிரியில் பரவிய நெறிமுறைகள்
* நெறிமுறை உருவாக்குபவர் கணினி செய்நிரல் மட்டும் தேர்ந்தெடுக்கிறார். அனைத்து கணினிகளும் இதே செய்நிரலை இயக்குகிறது. வலையமைப்பின் கட்டமைப்பை பொருட்படுத்தாமல் அமைப்பானது சரியாக இயங்க வேண்டும்.
* பொதுவாக உபயோகப்படுத்தபடும் மாதிரியாக ஒவ்வொரு முனையத்திற்கு வரம்பிற்குட்பட்ட எந்திர வரைபடத்துடன் உள்ளது.

பரவிய நெறிமுறைகளில், கணக்கியல் பிரச்சனைகள் வரைப்படத்துடன் தொடர்பு கொண்டுள்ளன. கணினி வலையமைப்பின் கட்டமைப்பை விவரிக்கும் வரைபடமானது பிரச்சனை சான்றில் *இருக்கிறது*. பின்வரும் எடுத்துக்காட்டில் இது விவரிக்கப்பட்டுள்ளது.

### ஒரு உதாரணம்:

ஒரு வரைபடம் *G*  யின் நிறங்களை கண்டறியும் கணக்கியல் சிக்கல்களை எடுத்துக் கொள்வோம். பலதரப்பட்ட புலங்கள் பின்வரும் அணுகுமுறைகளை எடுத்துக் கொள்ளலாம்.

ஒருமுகப்படுத்தப்பட்ட நெறிமுறைகள்
* வரைப்படம் *G* யானது சரமாக மாற்றப்பட்டு கணினிக்கு உள்ளீடாக தரப்படுகிறது. கணினி செயல்நிரையானது வரைப்படத்தின் நிறங்களை கண்டறிந்து அவற்றை சரமாக மாற்றி வெளியீடாக தருகிறது.

இணையான நெறிமுறைகள்
* மீண்டும் வரைப்படம் *G*  சரமாக மாற்றப்படுகிறது. எனினும் பன்முனை கணினிகள் இந்தச் சரத்தை இணையாக இயக்க முடியும். ஒவ்வொரு கணினியும் வரைப்படத்தின் ஒரு பகுதியை மட்டும் மையப்படுத்தி அந்தப் பகுதியின் நிறத்தை உண்டாக்கும்.
* பன்முனைக் கணினிகளை இணையாக இயக்கும் திறன் தனிமைப்படுத்தி கணக்கியலில் அதிக செயல்திறனை மையப்படுத்துவது முதன்மையாகும்.

பரவிய நெறிமுறைகள்
* வரைப்படம் *G* கணினி வலையமைப்பின் கட்டமைப்பாகும். *G*  யின் ஒவ்வொரு முனையத்திற்கும் ஒரு கணினி மற்றும் *G* யின் விளிம்பிற்கும் ஒரு தொடர்பு வரிசை இருக்கும். வரைப்படம் *G*  யின் அடுத்த நெருக்கமானவரை ஒவ்வொரு கணினியும் அறியும்; *G* யின் கட்டமைப்பை தெரிந்து கொள்ள ஒவ்வொரு கணினியும் தகவல்களை பரிமாற்றம் செய்து கொள்ளும். ஒவ்வொரு கணினியும் தனித்தனியாகத் தனது வெளியீட்டை வெளிவிடும்.
* தன்னிச்சையாக இயங்கும் பரவிய அமைப்புகளின் நடவடிக்கைகளை ஒன்றினைப்பது முக்கிய மையமாகும்.

பரவிய நெறிமுறைகளின் பகுதிகளிலிருந்து இணையான நெறிமுறை பகுதிகள் வேறுபட்ட மையங்கள் கொண்டுள்ளன. இரண்டு பகுதிகளுக்கும் நிறைய இடையீட்டு விளைவுகள் உண்டு. உதாரணமாக வரைப்பட நிறத்திற்கான கோல்-விஸ்கின் நெறிமுறைஇணையான நெறிமுறையாக முதலில் வழங்கப்பட்டாலும் பரவிய நெறிமுறையில் நேரடியாக இதன் உத்திகள் உபயோகப்படுத்தப்படுகின்றன.

இவற்றுக்கு மேலாக இணையான நெறிமுறையானது இணை அமைப்பிலும் (பரவிய நினைவகம் மூலம்) அல்லது பங்கிடப்பட்ட அமைப்பில் (தகவல் செலுத்து மூலம்) நிறைவேற்றப்படுகிறது. இணையான மற்றும் பரவிய நெறிமுறைகளுக்கு இடையான எல்லையானது (வலையமைப்பை தேர்வு செய்வது vs. வலையமைப்பில் இயங்குவது) இணையான மற்றும் பரவிய அமைப்புகளின் (பங்கிடப்பட்ட நினைவகம் vs. தகவல் செலுத்துதல்) எல்லையின் ஒரே இடத்தில் இருக்காது. 

### சிக்கலான அளவீடுகள்

மையப்படுத்தப்பட்ட நெறிமுறையானது சிறப்பாக இருக்கலாம் அதிகமான நேரமோ (கணக்கியல் முறைகளின் எண்ணிக்கை) அல்லது இடமோ (நினைவகத்தின் அளவு) தேவைப்படாத போது. சிக்கலான அளவீடுகள் P (நேரங்களின் கோர்வையில் தீர்க்கப்பட்ட பிரச்சனைகளைப்போல) மற்றும் PSPACE (இடங்களின் கோர்வையில் தீர்க்கப்பட்ட பிரச்சனைகளைப் போல) சிக்கலான பிரிவுகளை உருவாக்கும்.

இணையான நெறிமுறைகளில் நேரம் மற்றும் இடத்துடன் மற்றொரு ஆதாரமான கணினிகளின் வகைகளும் கூடுதலாக இருக்கும். கணினிகளின் எண்ணிக்கை மற்றும் இயங்கும் நேரங்கள் இடையே ஒரு தொடர்பு இருக்கும்: அதிகப்படியான கணினிகள் இணையாக இயங்கும் போது பிரச்சனையானது சுலபமாக தீர்க்கப்படும் (வேகக்கூடுதலை பார்க்கவும்) செயற்படுத்திகளின் கோர்வை எண்ணிக்கை மூலம் பலகோண நேரத்தில் முடிக்கப்பட்ட தீர்வு பிரச்சனையானது NC என்ற பகுப்பின் கீழ் சொல்லப்படும். NC பகுப்பானது PRAM நடைமுறை அல்லது பூலியன் சுற்றுகள் மூலம் சமமாக விவரிக்கப்படும். PRAM அமைப்புகளானது பூலியன் சுற்றுகளை எளிதாக ஒன்றுபடுத்தும் மற்றும் நிலை எதிர்மாறாகவும் செயல்படும்.

பரவிய நெறிமுறைகளின் பகுப்பாய்வில் கணக்கீட்டு முறைகளை விட தொடர்பு நடவடிக்கைகளில் அதிகம் கவனம் செலுத்தப்படும். பரவிய கணினிச் செய்முறையின் சிறந்த மாதிரி ஒத்தியக்க அமைப்பாகும் இதில் அனைத்து முனையங்களும் மூடிய படிவத்தில் இயக்கப்படும். *தொடர்பு வட்டத்தின்* போது அனைத்து முனையங்களும் இணையாக மாறி அயலகத்திலிருந்து அண்மை தகவலை பெற்று, தன்னிச்சையான கணக்கீடுகளை செய்து, புதிய தகவல்களைத் தன்னுடைய அயலகத்திற்கு அனுப்புகிறது. இந்த அமைப்புகளில் மைய சிக்கல் அளவீடுகளுக்கு செயலை முடிக்க குறிப்பிட்ட எண்ணிக்கை கொண்ட ஒத்தியக்க தொடர்பு வட்டங்கள் தேவைப்படுகின்றன.

இந்தச் சிக்கலான அளவீடுகள் வலையமைப்பின் விட்டத்துடன் அருகில் தொடர்புடையது. *D*  என்பது வலையமைப்பின் விட்டம் எனில் மற்றொரு பக்கத்தில், எளிதாக ஒத்தியக்க பரவிய அமைப்புகள் மூலம் கணக்கிடப்பட்ட தீர்வுகள் தோரயமாக 2*D* தொடர்பு வட்டங்கள்: ஒரு பக்கத்திலிருந்து பெறப்பட்ட அனைத்து தகவல்கள் *D*  வட்டங்கள்), தீர்வு கண்டு ஒவ்வொரு முனையத்திற்கும் *D* வட்டங்களில் தீர்வு கொடுக்கிறது.

மற்றொரு விதத்தில் நெறிமுறைகளின் இயக்கு நேரமானது *D*  தொடர்பு வட்டங்களை விட குறைவானதாக இருக்கும், வலையமைப்பில் இணைக்கப்பட்டுள்ள முனையங்கள் அவைகளின் வெளியீடுகளை நெருக்கமில்லாத வலையமைப்பு பகுதிகளிலிருந்து தகவல்களை பெறாமல் வெளிவிடுகின்றன. மற்ற வார்த்தைகளில், தகவல்களைப் பொறுத்த இசைவான முடிவுகளை தனது *உள்பகுதி அக்கம் பக்கத்திலிருந்து* உருவாக்குகின்றன. பல பரவிய நெறிமுறைகளின் இயக்க நேரங்கள் *D* வட்டத்தை விட குறைவாக உள்ளது, எந்த நெறிமுறைகள் எந்த பிரச்சனைகளைத் தீர்த்தது என்பதை புரிந்து கொள்வது இந்தப் பகுதியின் மைய ஆய்வு கேள்வியாக உள்ளது.

மற்ற பொதுவான உபயோகப்படும் அளவுகள் வலையமைப்பில் அனுப்பப்பட்ட துணுக்குகளின் மொத்த எண்ணிக்கையைப் பொறுத்தது (cf. தொடர்பு சிக்கல்)

### மற்ற பிரச்சனைகள்

பொதுவான கணக்கீட்டு சிக்கல்களைக் கண்ணோட்டத்திற்கு எடுத்துக் கொண்டால் ஒரு கேள்வி எழுகிறது, ஒரு கணினி (அல்லது பரவிய அமைப்பு) அந்த கேள்வியை ஒரு குறிப்பிட்ட நேரத்துக்கு இயக்கி, முடிவை வெளியிட்டு விட்டு நின்று விடுகிறது. எப்படி இருந்தாலும், இயந்திரம் எப்போதும் நிறுத்தாமல் வேலை செய்ய வேண்டிய கணக்குகளும் உள்ளன. இந்தச் சிக்கல்களுக்கு எடுத்துக்காட்டாக டைனிங் பிலோஸபர்ஸ் மற்றும் மியூட்சுவல் எக்ஸ்லுசன்சிக்கல்களைக் கூறலாம். இந்தச் சிக்கல்களில் பரவிய அமைப்பானது தொடர்ச்சியாக பங்கிடப்பட்ட மூலங்களுடன் ஒருங்கிணைந்து இருக்க வேண்டும் அப்போது தான் முரண்பாடுகளும் அல்லது முடக்கம் ஏற்படாமல் இருக்கும்.

பரவிய கணினி செய்முறைக்கான தனித்துவம் வாய்ந்த சில அடிப்படைச் சவால்கள் உள்ளன. *பழுது பொறுத்தி*களுடன் தொடர்புடைய சவால்கள் முதல் எடுத்துக்காட்டு தொடர்புடைய சிக்கல்களுக்கு கருத்தொற்றுமை சிக்கல்கள், பைஜாண்டைன் பழுது பொறுதி மற்றும் சுய-உறுதியாக்கல் உதாரணங்களாகும்.

பல வகையான ஆய்வுகள் பரவிய அமைப்புகளின் *ஒத்தியங்கா* நிலையை புரிந்து கொள்ள மையப்படுத்தபட்டுள்ளது.

* ஒத்தியக்க நெறிமுறைகளை ஒத்தியங்கா அமைப்புகளில் இயக்க சிங்ரோனைசர்ஸ் உபயோகிக்கலாம்.
* தர்க்கபூர்வ கடிகாரம் நிகழ்வுகளை வரிசைப்படுத்தும் முன்பு நடந்த காரணங்களை வழங்குகிறது.
* கடிகார சிங்ரோனைசேசன் நெறிமுறைகள் உளகலாவிய முரணற்ற நேரங்களை வழங்குகின்றன.

### பரவிய அமைப்புகளின் பண்புகள்

கொடுக்கப்பட்ட சிக்கலைத் தீர்ப்பதற்கான பரவிய அமைப்பை *வடிவமைப்பது* மையமாக இருந்தது. நிறைவு உண்டாக்கும் ஆராய்ச்சி சிக்கல் என்பது பரவிய அமைப்புகளை பற்றி *படிப்பதாகும்* .

இடைத்தடங்கள் சிக்கல் என்பது மையமாக்கப்பட்ட கணக்கீட்டுடன் தொடர்புடைய ஒற்றுமையான உதாரணமாகும்: நாம் கணினிக்கு ஒரு செய்முறை மற்றும் பணியைக் கொடுத்து அவை இடைத்தடங்களில் இருக்க வேண்டுமா அல்லது எப்போதும் இயங்க வேண்டுமா என்று தீர்மானிக்கிறோம். பொதுவான நடத்தைகளில் இடைத்தடங்கள் சிக்கல் கணிக்க முடியாதது. கணினி வலையமைப்பின் நடத்தை புரிந்து கொள்வதை விட ஒரு கணினியின் நடத்தையை புரிந்து கொள்வது கடினமாகும்.

எனினும் சில நேர்த்தியான சிறப்பு நடத்தைகள் கணிக்ககூடியவை. வரம்புக்குட்பட்ட அமைப்பு இயந்திரங்களின் வலையமைப்பு நடத்தையை அறிந்து கொள்வதற்கான காரணங்களும் குறிப்பாக உள்ளன. ஒரு உதாரணமாக கொடுக்கப்பட்ட வலையமைப்பில் வரம்புக்குட்பட்ட அமைப்பு (ஒத்தியங்கா மற்றும் உறுதிசெய்யாத) இயந்திரங்களின் இடையீடு முடக்கம் அடையும். இந்தச் சிக்கலானது PSPACE-நிறைவடைந்தது, அதாவது இது கணிக்ககூடியவை, பெரிய வலையமைப்புகளின் பகுதிகளில் உள்ள சிக்கல்களைத் தீர்க்கப் பயன்படும் (மையமாக்கபட்ட, இணையான அல்லது பரவிய) நெறிமுறைகளைப் போல திறமையாக இருக்காது.

கட்டமைப்பு
----------

பல மென்பொருள் மற்றும் வன்பொருள் கட்டமைப்புகள் பரவிய கணினிச் செய்முறையில் உபயோகப்படுத்தப்படுகின்றன. குறைந்த நிலைகளில் பன்மடங்கு CPU களை ஒரு குறுகிய வலையமைப்பில் இணைப்பது தேவையானதாகும். வலையமைப்பானது சுற்று பலகையில் பதிக்கபட்டு இருந்தாலோ அல்லது நெடுமை-இணைவு கருவிகள் மற்றும் கம்பிகளுடன் உருவாக்கப்பட்டு இருந்தாலோ பொருட்படுத்தாது. ஆனால் அதிகமான நிலைகளில் அந்த CPU களில் இயங்கும் செய்முறைகளை சில தொடர்பு அமைப்புகள்மூலம் இணைப்பது தேவையானதாகும்.

பரவிய செய்முறையானது சேவைபயனர் வழங்கி, 3-அடுக்கு கட்டமைப்பு, N-அடுக்கு கட்டமைப்பு, பரவிய பொருள்கள், நெடுமை இணைவு அல்லது நெருக்க இணைவுபோன்ற அடிப்படை கட்டமைப்புகள் அல்லது பகுப்புகளில் பொதுவாக வருகின்றன.

* சேவைப் பயனர் வழங்கி- சிறிய சேவைப் பயனர் தகவல்களைப் பெற வழங்கியுடன் இணைக்கபட்டு, பயனருக்கு தேவையான விதத்தில் தகவலை வழங்கும். சேவைப் பயனரில் உள்ளீடாக வழங்கபட்ட தகவலில் தொடர்ச்சியான மாற்றம் இருந்தால் அது வழங்கிக்கு திருப்பி அனுப்பும்.
* 3-அடுக்கு கட்டமைப்பு- மூன்று அடுக்கு அமைப்பில் சேவைப் பயனரானது நடு அடுக்காக மாறி நிலையற்ற சேவைப் பயனரும் உபயோகிக்கும் விதத்தில் அமையும். பயனுறுத்ததை எளிமையாக்குகிறது இணைய பயனுறுத்தங்கள் பெரும்பாலும் 3-அடுக்கு கட்டமைப்பு கொண்டவை
* N-அடுக்கு கட்டமைப்பு- N-அடுக்கு பெரும்பாலும் இணைய பயனுறுத்தங்களில் தனது தேவைகளை முயற்சி சேவைகளுக்காக அனுப்புகிறது. இந்த வகையான பயனுறுத்தங்கள் பயனுறுத்த வழங்கிகளின் வெற்றிக்கு பெரிய காரணமாக உள்ளது.
* நெருக்க இணைவு (கொத்துக்கள்)- எந்திரங்களின் கொத்துக்கள் இணைவாக அமைக்கப்பட்டு பரவிய முறை வழிப்படுத்தலில் இயக்கப்படுவதை குறிக்கிறது. இந்த முறையானது பிரிவுகளாக பிரிக்கப்பட்டு தனித்தனியாக்கப்பட்டு மீண்டும் ஒன்றிணைக்கப்பட்டு இறுதி முடிவு எட்டப்படுகிறது.
* சமமானவர் தொடர்பு- இந்த கட்டமைப்பில் சிறப்பு இயந்திரமோ அல்லது இயந்திரங்களோ வலையமைப்பு சாதனங்களை சமாளிக்க அல்லது சேவை வழங்க தேவையில்லை. சுமைகள் அனைத்து எந்திரங்களுக்கும் சமமாக பிரிக்கப்பட்டு சமமானவர் என்று அறியப்படுகிறது. சேவைப் பயனாளர் மற்றும் வழங்கிகளாக பியர்ஸ் இருக்கும்.
* இடைவெளி அடிப்படை- இந்த கட்டமைப்பானது ஒற்றை முகவரி-இடைவெளியில் ஒரு தோற்ற மாயயை உருவாக்கிறது. பயனுறுத்த தேவைகளுக்காக தகவல் தெளிவாக பிரதிபலிக்கப்படுகிறது. நேரம், இடம் மற்றும் குறிப்புதவி ஆகியவற்றில் இணை பிரிப்பு அடையப்படுகிறது.

பரவிய கணினி செய்முறைகளின் மற்றொரு அடிப்படை அம்சம் என்னவென்றால் உடன்நிகழ்வு முறைவழிப்படுத்துதலில் உள்ள தொடர்பு மற்றும் ஒருங்கிணைப்பு வகைகளாகும். பலதரப்பட்ட தகவல் பரவல் நடப்பொழுங்குகள் மூலம், முறைவழிப்படுவது ஒன்றை ஒன்று நேரடியாக எஜமான்/அடிமை தொடர்பில் தொடர்பு கொள்கிறது. மைய தரவுதள கட்டமைப்பு எந்த வித நேரடி உள்-முறைவழிப்படுத்து தொடர்பு இல்லாமல் பகிர்வு தரவுதளத்தின் மூலம் பரவிய கணினி செயல்முறை பதிலீடாக செய்யப்படுகிறது.

குறிப்புகள்
-----------

1. ↑  (Andrews 2000). (Dolev 2000). (Ghosh 2007), ப. 10.
2. ↑  (Godfrey 2002).
3. ↑  (Lynch 1996), ப. 1.
4. ↑  (Andrews 2000), ப. 291–292. (Dolev 2000), ப. 5.
5. ↑  (Ghosh 2007), ப. 10.
6. ↑  (Andrews 2000), ப. 8–9, 291. (Dolev 2000), ப. 5. (Ghosh 2007), ப. 3. (Lynch 1996), ப. xix, 1. (Peleg 2000), ப. xv.
7. ↑  (Andrews 2000), ப. 291. (Ghosh 2007), ப. 3. (Peleg 2000), ப. 4.
8. ↑  (Ghosh 2007), ப. 3–4. (Peleg 2000), ப. 1.
9. ↑  (Ghosh 2007), ப. 4. (Peleg 2000), ப. 2
10. ↑  (Ghosh 2007), ப. 4, 8. (Lynch 1996), ப. 2–3. (Peleg 2000), ப. 4.
11. ↑  (Lynch 1996), ப. 2. (Peleg 2000), ப. 1.
12. ↑  (Ghosh 2007), ப. 7. (Lynch 1996), ப. xix, 2. (Peleg 2000), ப. 4.
13. ↑  (Ghosh 2007), ப. 10. (Keidar 2008).
14. ↑  Lynch, Nancy A. (1996), *Distributed Algorithms*, Morgan Kaufmann, ISBN 978-1-55860-348-6
15. ↑  See references in Introduction
16. ↑  Papadimitriou (1994), Chapter 15. Keidar (2008).
17. ↑  Bentaleb, A.; Yifan, L.; Xin, J.; et al. (2016). "Parallel and Distributed Algorithms" (PDF). National University of Singapore. Retrieved 20 July2018.
18. ↑  (Andrews 2000), ப. 348.
19. ↑  (Andrews 2000), ப. 32.
20. ↑  (Peter 2004), மின்னஞ்சலின் வரலாறு.
21. ↑  (Elmasri & Navathe 2000), பிரிவு 24.1.2.
22. ↑  (Andrews 2000), ப. 10–11. (Ghosh 2007), ப. 4–6. (Lynch 1996), ப. xix, 1. (Peleg 2000), ப. xv. (Elmasri & Navathe 2000)(Elmasri & Navathe 2000), பிரிவு 24.
23. ↑  (Cormen, Leiserson & Rivest 1990), பிரிவு 30.
24. ↑  (Herlihy & Shavit 2008), அத்தியாயம் 2-6.
25. ↑  (Lynch 1996)
26. ↑  (Cormen, Leiserson & Rivest 1990), பிரிவுகள் 28 மற்றும் 29.
27. ↑  (Cole & Vishkin 1986). (Cormen, Leiserson & Rivest 1990), பிரிவு 30.5.
28. ↑  (Andrews 2000), ப. ix.
29. ↑  (Arora & Barak 2009), பிரிவு 6.7. (Papadimitriou 1994), பிரிவு 15.3.
30. ↑  (Papadimitriou 1994), பிரிவு 15.2.
31. ↑  (Lynch 1996), ப. 17–23.
32. ↑  (Peleg 2000), பிரிவுகள் 2.3 மற்றும் 7. (Linial 1992). (Naor & Stockmeyer 1995).
33. ↑  (Lynch 1996), பிரிவுகள் 5–7. (Ghosh 2007), அத்தியாயம் 13.
34. ↑  (Lynch 1996), ப. 99–102. (Ghosh 2007), ப. 192–193.
35. ↑  (Dolev 2000). (Ghosh 2007), அத்தியாயம் 17.
36. ↑  (Lynch 1996), பிரிவு 16. (Peleg 2000), பிரிவு 6.
37. ↑  (Lynch 1996), பிரிவு 18. (Ghosh 2007), பிரிவுகள் 6.2–6.3.
38. ↑  (Ghosh 2007), பிரிவு 6.4.
39. ↑  (Papadimitriou 1994), பிரிவு 19.3.
40. ↑  எ டேட்டாபேஸ்-செண்ட்ரிக் விரிட்சுவல் ஹெமிஸ்ட்ரி சிஸ்டம், ஜெ செம் இன்ஃப் மாடல் 2006 மே-ஜூன்;46(3):1034-9

குறிப்புதவிகள்
--------------

புத்தகங்கள்
* Andrews, Gregory R. (2000), *Foundations of Multithreaded, Parallel, and Distributed Programming*, Addison–Wesley, ISBN 0-201-35752-6.
* Arora, Sanjeev; Barak, Boaz (2009), *Computational Complexity – A Modern Approach*, Cambridge, ISBN 978-0-521-42426-4.
* Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (1990), *Introduction to Algorithms* (1st ed.), MIT Press, ISBN 0-262-03141-8.
* Dolev, Shlomi (2000), *Self-Stabilization*, MIT Press, ISBN 0-262-04178-2.
* Elmasri, Ramez; Navathe, Shamkant B. (2000), *Fundamentals of Database Systems* (3rd ed.), Addison–Wesley, ISBN 0-201-54263-3.
* Ghosh, Sukumar (2007), *Distributed Systems – An Algorithmic Approach*, Chapman & Hall/CRC, ISBN 978-1-58488-564-1.
* Lynch, Nancy A. (1996), *Distributed Algorithms*, Morgan Kaufmann, ISBN 1-55860-348-4.
* Herlihy, Maurice P.; Shavit, Nir N. (2008), *The Art of Multiprocessor Programming*, Morgan Kaufmann, ISBN 0-12-370591-6.
* Papadimitriou, Christos H. (1994), *Computational Complexity*, Addison–Wesley, ISBN 0-201-53082-1.
* Peleg, David (2000), *Distributed Computing: A Locality-Sensitive Approach*, SIAM, ISBN 0-89871-464-8, 2009-08-06 அன்று மூலம் பரணிடப்பட்டது, 2010-03-23 அன்று பார்க்கப்பட்டது.

கட்டுரைகள்
* Cole, Richard; Vishkin, Uzi (1986), "Deterministic coin tossing with applications to optimal parallel list ranking", *Information and Control*, **70** (1): 32–53, doi:10.1016/S0019-9958(86)80023-7.
* Keidar, Idit (2008), "Distributed computing column 32 – The year in review", *ACM SIGACT News*, **39** (4): 53–54, 2014-01-16 அன்று மூலம் பரணிடப்பட்டது, 2010-03-23 அன்று பார்க்கப்பட்டது.
* Linial, Nathan (1992), "Locality in distributed graph algorithms", *SIAM Journal on Computing*, **21** (1): 193–201, doi:10.1137/0221015.
* Naor, Moni; Stockmeyer, Larry (1995), "What can be computed locally?", *SIAM Journal on Computing*, **24** (6): 1259–1277, doi:10.1137/S0097539793254571.

இணையத்தளங்கள்
* Godfrey, Bill (2002). "A primer on distributed computing". 2010-02-25 அன்று மூலம் பரணிடப்பட்டது. 2010-03-23 அன்று பார்க்கப்பட்டது.
* Peter, Ian (2004). "Ian Peter's History of the Internet". 2009-08-04 அன்று பார்க்கப்பட்டது.

கூடுதல் வாசிப்பு
----------------

புத்தகங்கள்
* Tel, Gerard (1994). *Introduction to Distributed Algorithms*. Cambridge University Press. .
* Attiya, Hagit and Welch, Jennifer (2004). *Distributed Computing: Fundamentals, Simulations, and Advanced Topics*. Wiley-Interscience.  ISBN 0-471-45324-2.
* Garg, Vijay K. (2002). *Elements of Distributed Computing*. Wiley-IEEE Press.  ISBN 0-471-03600-5.

கட்டுரைகள்
* Keidar, Idit; Rajsbaum, Sergio, eds. (2000–2009), "Distributed computing column", *ACM SIGACT News*, 2014-01-16 அன்று மூலம் பரணிடப்பட்டது, 2010-03-23 அன்று பார்க்கப்பட்டது.

புற இணைப்புகள்
--------------

* Distributed computing திறந்த ஆவணத் திட்டத்தில்
* Distributed computing journals திறந்த ஆவணத் திட்டத்தில்

[[ta:பரவிய\_கணிப்பு]