उच्च प्रदर्शन कंप्यूटिंग में सबसे अधिक उपयोग की जाने वाली प्रोग्रामिंग भाषा क्या है? और क्यों? [बन्द है]


25

मेरा मानना ​​है कि बहुत सारे फोरट्रान एचपीसी में उपयोग किए जाते हैं, लेकिन यह निश्चित नहीं है कि केवल विरासत कारणों से ही।

कचरा संग्रह या रन-टाइम बहुरूपता जैसी आधुनिक प्रोग्रामिंग भाषाओं की विशेषताएं HPC के लिए उपयुक्त नहीं हैं क्योंकि गति मामले इसलिए सुनिश्चित नहीं हैं कि C # या Java या C ++ में आते हैं।

कोई विचार?


9
C ++ में कचरा संग्राहक नहीं है और इसके लिए आपको रनटाइम पॉलीमोर्फिज़्म का उपयोग करने की आवश्यकता नहीं है।
जेसन बेकर

@ जेसन मेरा इरादा यह जानने का है कि सी ++ की क्या विशेषताएं इसे एचपीसी के लिए एक सम्मोहक मामला बनाती हैं।
Fanatic23

@ Fanatic23 - मैं समझता हूँ। बस उसी का एक नोट बनाना चाहता था। :-)
जेसन बेकर

1
@Fanatic काश मैं हाँ कह सकता था, लेकिन मेरे पास बहुत अधिक नहीं है ... मेरे पास .NET / कार्यात्मक भाषाओं में कुछ प्रदर्शन मुद्दों के संबंध में लिंक का एक गुच्छा है, हालांकि। आप कुछ प्रदर्शन सीमाओं पर समझ पाने के लिए मानसिक रूप से अवधारणाओं को एक साथ करने में सक्षम हो सकते हैं: msdn.microsoft.com/en-us/library/0xy59wtx.aspx stackoverflow.com/questions/2909282-… msdn.microsoft.com/en -सु / पत्रिका / cc163329.aspx en.wikipedia.org/wiki/Just-in-time_compilation
रे

1
मुझे लगता है कि, अगर आपको वास्तव में अच्छी प्रतिक्रिया समय की आवश्यकता है, तो आप जो देख रहे हैं वह वास्तविक समय का है जैसे कि QNX: en.wikipedia.org/wiki/QNX
Rei Miyasaka

जवाबों:


11

मैंने एचपीसी के लिए उन क्षेत्रों में बहुत सारे जावा का उपयोग किया है जहां (1) थोड़ा विरासत कोड है, और (2) विकास समय और कोड गुणवत्ता मामला है। विशिष्ट अनुप्रयोग डोमेन वित्त, डेटा खनन या जैव-सूचना विज्ञान हैं।

यह वास्तव में आवेदन पर निर्भर करता है (रैखिक बीजगणित के बाहर जीवन है), लेकिन हाल के जेवीएम का प्रदर्शन अक्सर सी कोड के बराबर होता है। कभी-कभी जब जेवीएम रनटाइम होशियार अनुकूलन पर प्रदर्शन करने में सक्षम होता है जो स्थिर संकलक (सी, फोरट्रान) नहीं कर सकता। और निश्चित रूप से तेज जब प्रतीकात्मक गणना का एक बहुत कुछ है।

कार्यक्रम के विकास के लिए एक निश्चित समय को देखते हुए , परिणामी जावा कोड सी कोड की तुलना में लगातार तेज है। जावा में एचपीसी निश्चित रूप से समझ में आता है जब कोड विकसित या संशोधित होता है। एक अन्य महत्वपूर्ण विशेषता विभिन्न हार्डवेयर पर कोड गतिशीलता है।

आपको http://ateji.blogspot.com/2010/09/java-for-high-performance-computput.html पर संदर्भ मिलेगा

फोरट्रान धारणा के बारे में कि दो पते अद्वितीय हैं, हम एक स्थैतिक विश्लेषण उपकरण पर काम कर रहे हैं जो उच्च-स्तरीय भाषाओं में कोड के लिए समान अनुकूलन को सक्षम करेगा, लेकिन "खराब चीजें मई के बिना" बिट के बिना। दिलचस्पी होने पर मुझसे संपर्क करें।


14
नाइटपिक: यदि आप थोड़ा सा काम करने के इच्छुक हैं तो JIT अनुकूलन स्थिर संकलक के लिए उपलब्ध हैं। जीसीसी और एमएस विज़ुअल स्टूडियो दोनों प्रोफाइल गाइडेड ऑप्टिमाइज़ेशन का समर्थन करते हैं जो सहेजे गए रनटाइम डेटा का उपयोग करके अनुकूलन करते हैं। यह सुझाव देने के लिए थोड़ा भ्रामक है कि अनुकूलन कर रहे हैं "कि स्थिर संकलक (...) नहीं कर सकते हैं"।
कॉर्बिन मार्च

4
मुझे नहीं पता कि यह क्यों स्वीकार किया गया उत्तर है, इस पोस्ट में कुछ भी सत्य की झलक नहीं है। सी आधारित भाषाएं हमेशा जावा से बेहतर प्रदर्शन करेंगी, क्योंकि जावा एक आभासी मशीन है जो स्वाभाविक रूप से दूसरी भाषा पर टिका है। इसके अलावा, कुछ भी आप जावा में प्राप्त कर सकते हैं आप कम ओवरहेड के साथ सी में प्राप्त कर सकते हैं। C आधारित भाषाएं कभी भी 'प्रदर्शनकारी' भाषा नहीं होंगी।
माइक

31

मेरे अनुभव के वर्षों में, 5 साल पहले तक, यह हमेशा फोरट्रान और सी रहा है। कौन सा ज्यादातर इस बात पर निर्भर करता है कि लोग इंजीनियरिंग से अधिक आए या सीएस स्कूल ऑफ थिंक से (मुझे नहीं पता कि यह कैसे बेहतर करना है , ओके; :-)

क्या हम फोरट्रान कर रहे थे लगभग विशेष रूप से इस्तेमाल किया गया था।

आजकल मैं जो कुछ भी पढ़ता हूं, उसमें से मानक F2003 / 08 के नए अपडेट के साथ और को-एरेज़ की शुरुआत के साथ, यह फिर से गति प्राप्त कर रहा है।

इसके अलावा, एक, अगर कुछ पक्षपाती लेख नहीं - आदर्श एचपीसी प्रोग्रामिंग भाषा


16

मुझे लगता है कि धातु के लिए असली पेडल, एकमात्र असली विकल्प फोरट्रान है। तर्क यह है कि निम्न स्तर के ILP (इंस्ट्रक्शन लेवल पैरालिज्म) के शोषण के लिए सबसे महत्वपूर्ण चीज मेमोरी एड्रेस डिसबैलेंस है। फोरट्रान में डिफैक्टो नियम संकलक को यह निर्धारित करने की अनुमति देते हैं कि दो पते अद्वितीय हैं (और इसलिए लोड और स्टोर का क्रम, या यहां तक ​​कि स्टोर और स्टोर को गलत कोड उत्पन्न करने के जोखिम के बिना इंटरचेंज किया जा सकता है)। संकलक के लिए कोड से अति निम्न स्तर समानता को निकालने के लिए C बहुत अधिक गुंजाइश छोड़ देता है।

इसके अलावा, सरणी संरेखण, wrt कैश लाइनें, और SSE / AVX सीमाएं कुशल लूप की पीढ़ी और निष्पादन के लिए महत्वपूर्ण हैं। यदि सरणियों को सामान्य ब्लॉकों से गुजारा जाता है, तो कंपाइलर / लोडर यह आश्वस्त कर सकता है कि सभी सरणियाँ एक ही पते के संरेखण सीमाओं पर शुरू होती हैं, और अधिक कुशल SSE / AVX लोड और स्टोर का उपयोग किया जा सकता है। नया हार्डवेयर बिना मेमोरी मेमोरी एक्सेस को हैंडल कर सकता है, लेकिन क्योंकि मेमोरी एक्सेस ठीक से संरेखित नहीं है, इसलिए कैश लाइनों का आंशिक उपयोग कम प्रदर्शन करता है। यहां तक ​​कि अगर एक सी प्रोग्रामर अपने सभी सरणियों को ठीक से संरेखित करता है, तो क्या संकलक को यह संवाद करने के लिए एक तंत्र है?

संक्षेप में, दो सबसे महत्वपूर्ण मुद्दे, मेमोरी पतों की स्वतंत्रता, और संकलक द्वारा मान्यता प्राप्त है कि एक्सेस किए गए डेटा संरचनाओं में समान "प्राकृतिक" संरेखण है जो हार्डवेयर चाहता है। अब तक फोरट्रान उन दो कार्यों पर सबसे अच्छा काम करता है।


2
मैंने हाल ही में एक छोटा सा प्रयोग किया था, 64,000 बिट्स की एक स्ट्रिंग की पॉप गिनती का पता लगाएं, जो एक लंबे समय तक दिए गए लंबे सरणी के रूप में दर्शाया गया है। मैंने बहुत ही रोचक बूलियन और पैक किए गए अंकगणित सामान का उपयोग करके सटीक एल्गोरिथम का उपयोग किया। C -O3 में, यह प्रति सेकंड लंबे समय तक 10clock लेता है, जबकि फोरट्रान इंटेल फोरट्रान 10.1 के साथ, डिफ़ॉल्ट अनुकूलन के साथ यह 6.5 था! और हर प्रोग्रामर को लगता है कि सी बिट ट्विडलिंग के लिए बेहतर है! फोरट्रान डिफैक्टो धारणाएं अधिक कुशल निम्न स्तर के निर्देश कोडिंग को सुरक्षित रूप से उत्पन्न करने की अनुमति देती हैं।
ओमेगा सेंटौरी

4
इसे पढ़ना चाहिए "फोरट्रान में डिफैक्टो नियम ASSUME को संकलक को अनुमति देते हैं कि दो पते अद्वितीय हैं ..."। मैनुअल सभी आपको बताते हैं कि संकलक को यह मानने की अनुमति है, और आपको यह पता लगाने में देरी होती है कि यदि आप उस धारणा का उल्लंघन करते हैं तो खराब चीजें हो सकती हैं।
जॉन आर। स्ट्रोहम

15

बस कुछ उपाख्यान ध्यान दें। मैंने खुद कोई उच्च प्रदर्शन कंप्यूटिंग नहीं किया है।

गणना (संख्या क्रंचिंग) के लिए, फोरट्रान और सी। हाँ यह विरासत के कारणों से है:

  • सार्वजनिक डोमेन स्रोत कोड और व्यंजनों की पर्याप्त उपलब्धता।
  • दोनों MPI को सपोर्ट करते हैं ।
  • दोनों भाषाएं संकलित हैं।
  • दोनों भाषाओं के लिए संकलक सभी एचपीसी ओएस और विक्रेताओं द्वारा प्रदान किए जाते हैं।
  • वेक्टरिंग कंपाइलर उपलब्ध हैं।
  • दोनों को अलग-अलग क्लस्टर (अलग मेमोरी साइज़, सीपीयू की संख्या इत्यादि) में पोर्ट करने के लिए उच्च प्रदर्शन प्राप्त करने के लिए ट्विकिंग के पागल स्तर की आवश्यकता होती है।
    • यह वास्तव में बताता है कि ओपन सोर्स कोड क्यों महत्वपूर्ण है: ट्वीकिंग आवश्यक है, इसलिए मूल नुस्खा को एक ऐसी भाषा में लिखा जाना चाहिए जो कि स्टॉकिंग के लिए अच्छा है।

नंबर क्रंचिंग के लिए वर्तमान प्रवृत्ति प्रोग्राम जनरेटर को लिखना है जो क्लस्टर विशेषताओं को देखते हुए प्रदर्शन को अनुकूलित करने के लिए स्रोत कोड को स्वचालित बनाता है। ये जनरेटर अक्सर C में आउटपुट करते हैं।

एक दूसरी प्रवृत्ति विशिष्ट जीपीयू या सेल बीई के लिए सी की कुछ विशेष बोली में लिखना है।

गैर-संख्यात्मक कार्य के लिए, जैसे प्रोग्राम जो डेटाबेस से डेटा (लेकिन स्वयं डेटाबेस नहीं) को संसाधित करते हैं, महंगे अनुकूलित नेटवर्किंग उपकरणों के बिना "कमोडिटी" मशीनों के क्लस्टर पर चलना बहुत सस्ता है। इसे आमतौर पर "हाई थ्रूपुट कंप्यूटिंग" कहा जाता है। और पायथन यहां # 1 भाषा है (प्रसिद्ध मैप रिड्यूस का उपयोग करके)। पायथन से पहले, बैच प्रसंस्करण परियोजनाएं किसी भी भाषा में लिखी जा सकती हैं, और आमतौर पर कोंडोर द्वारा भेजी जाती हैं ।


1
क्या आप "ट्विकिंग के पागल स्तर" पर थोड़ा विस्तार कर सकते हैं?
रुके

कंप्यूटिंग सेंटर स्नातक छात्रों को MPI कॉल को फिर से व्यवस्थित करने के लिए इसे तेज चलाने के लिए काम पर रखता है।
रवांग

(?) पहला शब्द यहाँ, लेकिन मुझे लगता है कि प्रथाएं अलग हैं।
रुके

यह एक जलवायु मॉडलिंग अनुसंधान केंद्र था।
रवांग

4

मैं (हां!) सी # में कुछ बहुत गणना-गहन कोड पर काम कर रहा हूं।

मैं ऑप्टिकल मॉडलिंग के लिए FDTD के GPGPU कार्यान्वयन का निर्माण कर रहा हूं । एक छोटे (128 प्रोसेसर) क्लस्टर पर, हमारे कई सिमुलेशन चलाने में कई सप्ताह लगते हैं। हालाँकि, GPU कार्यान्वयन, लगभग 50x तेज़ी से चलने के लिए करते हैं - और यह उपभोक्ता-ग्रेड NVidia कार्ड पर है। अब हमारे पास दो GTX295 दोहरे प्रोसेसर कार्ड (कई सौ कोर) के साथ एक सर्वर है, और जल्द ही कुछ टेस्ला प्राप्त कर रहे हैं।

यह आपकी भाषा से कैसे संबंधित है? सीपीयू-बाउंड से पहले हम जिस C ++ FDTD कोड का उपयोग कर रहे थे, उसी तरह से, ये GPU-बाध्य हैं, इसलिए प्रबंधित बनाम देशी कोड का ( बहुत छोटा) हॉर्स पावर अंतर कभी भी खेलने में नहीं आता है। C # ऐप एक कंडक्टर के रूप में कार्य करता है - ओपनसीएल कर्नेल लोड करना, जीपीयू से डेटा पास करना, उपयोगकर्ता इंटरफ़ेस प्रदान करना, रिपोर्टिंग करना, आदि - सभी कार्य जो सी ++ में गधे में दर्द हैं।

पिछले वर्षों में, प्रबंधित और अप्रबंधित कोड के बीच प्रदर्शन अंतर काफी महत्वपूर्ण था कि यह कभी-कभी C ++ के भयानक ऑब्जेक्ट मॉडल के साथ अतिरिक्त कुछ प्रतिशत गति प्राप्त करने के लिए लायक था। इन दिनों, C ++ बनाम C # की विकास लागत सबसे अनुप्रयोगों के लिए लाभ को बढ़ा देती है।

इसके अलावा, आपके अधिकांश प्रदर्शन अंतर भाषा की पसंद से नहीं, बल्कि आपके डेवलपर के कौशल से आने वाले हैं। कुछ हफ़्ते पहले, मैंने ट्रिपल-नेस्टेड (3 डी सरणी ट्रैवर्सल) लूप के अंदर से एक एकल डिवीजन ऑपरेशन को स्थानांतरित किया, जिसने किसी दिए गए कम्प्यूटेशनल डोमेन के लिए निष्पादन का समय 15% कम कर दिया। यह प्रोसेसर वास्तुकला का एक परिणाम है: विभाजन धीमा है, जो उन चेहरों में से एक है जिन्हें आपको बस कहीं और लेने की आवश्यकता है।


1
c ++ में ऑब्जेक्ट मॉडल है? लेकिन ऐसा लगता है कि आपको अपने नियंत्रकों को लिखने के लिए एक स्क्रिप्ट भाषा के साथ जाना चाहिए - अगर सी # देव गति के कारण सी ++ से बेहतर है, तो अजगर (या लूआ, आदि) सी # की तुलना में बेहतर है।
gbjbaanb

3
@gbjbaanb जरूरी नहीं। यह कार्यान्वयन GPU- बाध्य है, लेकिन एक स्क्रिप्टिंग भाषा में जाना बहुत आसानी से बदल सकता है। सी # संकलित है और एक बहुत अच्छा अनुकूलक है। संकलित, दृढ़ता से टाइप की गई भाषाएं आपके मित्र हैं! कम सख्त स्क्रिप्टिंग भाषाओं में किसी भी जटिल परियोजना के लिए विकास के समय में वृद्धि होती है
3Dave

1
सात साल हो गए। मैंने बहुत कुछ सीखा है। c ++ बहुत कमाल का है, C # भी बहुत बढ़िया है, मुझे वास्तव में अजगर पसंद है और: CPU perf अभी भी मायने रखता है।
डीवेव

3

फोरट्रान सबसे आम है, मुख्य रूप से विरासत के कारण (लोग अभी भी पुराने कोड चलाते हैं) और परिचित (ज्यादातर लोग जो एचपीसी करते हैं वे अन्य प्रकार की भाषाओं से परिचित नहीं हैं)।

कचरा संग्रह या रन-टाइम बहुरूपता जैसी आधुनिक प्रोग्रामिंग भाषाओं की विशेषताएं HPC के लिए उपयुक्त नहीं हैं क्योंकि गति मामले इसलिए सुनिश्चित नहीं हैं कि C # या Java या C ++ में आते हैं।

यह सामान्य रूप से सही नहीं है। शास्त्रीय एचपीसी ज्यादातर मशीन-सटीक संख्याओं के साथ रैखिक बीजगणित कर रहा था। हालांकि, आधुनिक एचपीसी मशीन की सटीक संख्याओं के बजाय मनमाने ढंग से गणितीय अभिव्यक्तियों के साथ प्रतीकात्मक गणनाओं की तरह, व्यापक कंप्यूटरों के लिए सुपर कंप्यूटरों का उपयोग कर रहा है। यह आपके द्वारा उपयोग किए जाने वाले साधनों पर काफी भिन्न विशेषताओं को प्रदर्शित करता है और फोरट्रान के अलावा अन्य प्रोग्रामिंग भाषाओं का उपयोग करना असामान्य नहीं है, क्योंकि प्रतीकात्मक गणना जीसी के बिना निषेधात्मक रूप से कठिन हो सकती है और अन्य प्रकार के अनुकूलन करने वाले कंपाइलर जैसे कि ओक्सैमल का अनुकूलन पैटर्न मैच बॉयलर।

उदाहरण के लिए, इस पेपर को Fischbacher et al। जो कहता है "लेखकों के पास यह विश्वास करने का मजबूत कारण है कि यह अच्छी तरह से अब तक का सबसे बड़ा प्रतीकात्मक गणना हो सकता है"।


फोरट्रान आम है क्योंकि बहुत से लोग भौतिक प्रणालियों के सिमुलेशन को चलाने के लिए सुपरकंप्यूटिंग समय का उपयोग करते हैं, जैसे कि वैश्विक मौसम पूर्वानुमान, और फोरट्रान में आवश्यक एल्गोरिदम का कार्यान्वयन बहुत स्पष्ट और संक्षिप्त है।
शार्प

3

फोरट्रान, कुछ अच्छे और कुछ नहीं-तो-अच्छे कारणों के लिए। भारी गणित क्रंचिंग के लिए, एक अच्छा कारण है, ट्रू और ट्रू सबरूटीन्स में लिखे गए (और उन सभी को C और C ++ से कॉल किया जा सकता है) लिखे गए ट्रू और सब-ट्राउट के व्यापक पुस्तकालय (BLAS, LAPACK) हैं।

एक नहीं-तो-अच्छा कारण सी / सी ++ से अधिक फोरट्रान का कथित प्रदर्शन लाभ है। ऑप्टिमाइज़र बहुत अच्छे हैं, और कुछ लोग समझते हैं कि कोड के एक टुकड़े को अनुकूलित करने का लाभ व्यस्त समय के अनुपात में आनुपातिक है, जो लगभग सभी कोड में लगभग शून्य है।

एक और नहीं-तो-अच्छा कारण सीएस और गैर-सीएस प्रोग्रामर के बीच एक संस्कृति अंतर है। वैज्ञानिक प्रोग्रामर को फ़ोर्ट्रान में बुरी आदतें सिखाई जाती हैं, और सीएस प्रोग्रामर और उन बुरी आदतों पर नज़र रखने के लिए जिन्हें वे सिखाया गया है, और जो पूर्व की ओर देखते हैं।


"सीएस और गैर-सीएस प्रोग्रामर के बीच संस्कृति का अंतर। वैज्ञानिक प्रोग्रामर को फोरट्रान में बुरी आदतें सिखाई जाती हैं, और सीएस प्रोग्रामर और उन्हें सिखाई जाने वाली बुरी आदतों को देखने के लिए, और जो पूर्व की ओर देखते हैं।" आंशिक रूप से यह सिर्फ इतना है कि वे समस्या के विभिन्न पहलुओं पर ध्यान केंद्रित कर रहे हैं। फोरट्रान का अर्थ होता है फॉरमूला ट्रैनसेलेशन, और यह गणित के सूत्रों को कोड में अनुवाद करने में काफी कुशल है। प्रोग्रामिंग के प्रकार के लिए सीएस प्रकार आमतौर पर करते हैं, अन्य भाषाएं बेहतर हैं।
ओमेगा सेंटॉरी

1
@ ओमेगा: तुम सही हो। फोरट्रान-सिखाया लोगों को प्रारूपण, घृणा "निहित कोई नहीं" की कोई अवधारणा नहीं है, और कोड को एक साथ रटना है क्योंकि वे अभी भी 72-वर्ण रेखाओं से निपटते हैं और सोचते हैं कि समझने योग्य कोड wimps के लिए है। सीएस-सिखाया लोग बहुरूपता, सूचना और अमूर्तता के साथ कक्षाओं के राक्षस पिरामिड बनाते हैं, जब कुछ सरल काम करेगा। इसलिए वे एक दूसरे के हकदार हैं :)
माइक डनलैवी

7
उद्धरण का उपयोग किया जाता है "भौतिक विज्ञानी कल के हार्डवेयर पर कल की समस्याओं को हल कर रहे हैं - जबकि सीएस लोग कल के हार्डवेयर पर कल की समस्याओं को हल कर रहे हैं"
मार्टिन बेकेट

@ मरीन: मुझे लगता है कि शायद मैंने सुना है कि कहीं। यकीन है कि यह सच है।
माइक डनलवे

मार्टिन: तो, हार्डवेयर लोग सबसे कुशल हैं :)
धैवत पंड्या

2

मूल रूप से, सभी प्रोग्राम जो संख्या क्रंचिंग का वास्तविक कार्य करते हैं, वे अभी भी फोरट्रान हैं (पुराने ब्लास, लैपैक, अर्नोल्डी आदि अभी भी उपयोग किए जाते हैं) ... हालांकि, जब यह उच्च स्तर की संरचना की बात आती है ... लोग तेजी से उपयोग कर रहे हैं सी ++।

सिमुलेशन की जटिलता में विशाल कोड शामिल है और किसी भी तरह के लाभ को लिखने से बाहर लाने के लिए इसे पुन: प्रयोज्य बनाना है। साथ ही, उपयोग की जाने वाली अवधारणाएं भी बहुत जटिल हो गई हैं। यह लगभग जानकारी का उपयोग करने के लिए पागलपन का उपयोग करता है। यह C ++ में आता है क्योंकि यह स्वाभाविक रूप से ऑब्जेक्ट ओरिएंटेड डिज़ाइन का समर्थन करता है। हालांकि, रन-टाइम बहुरूपता शायद ही कभी पसंद किया जाता है। इसके बजाय लोग लगभग हमेशा स्थैतिक बहुरूपता का उपयोग करते हैं (जो टेम्पलेट मेटा-प्रोग्रामिंग के साथ C ++ में लागू होता है)

इसके अलावा, अब कंपाइलर वास्तव में अच्छे हैं, इसलिए कंपाइलरों के लिए बहुत अधिक अनुकूलन बचा है।


1

एचपीसी के अनुप्रयोगों में दो तरह की समस्याओं का सामना करना पड़ता है: एक है खुद की संख्या को कम करना और दूसरी का प्रबंधन करना। पहले वाले को आमतौर पर गति के कारण फोरट्रान, सी या सी ++ में लिखे कोड के साथ संपर्क किया जाता है और इस तथ्य के कारण कि इस भाषा में पहले से ही बहुत सारे वैज्ञानिक एल्गोरिदम लिखे गए हैं। उच्च स्तरीय भाषाओं में संगणना का स्टीयरिंग अधिक आसानी से लागू होता है। संकलित भाषाओं में लागू किए गए एप्लिकेशन लॉजिक और कॉलिंग एक्सटेंशन को संभालने के लिए पायथन एक "गोंद" पसंद की भाषा है। जावा अक्सर परियोजनाओं द्वारा उपयोग किया जाता है जिसमें नेटवर्किंग का प्रबंधन और वितरित कंप्यूटिंग आवश्यक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.