s = 1 r = m = n = ओ = p = q = u = t = 19 myfile = fopen ("अनुक्रम 2.txt", "डब्ल्यू", "इज़ी-ले"); के लिए a = 0: 1 यदि (a == 1) r = 5 endif के लिए b = 0: r यदि (a == 1 & amp; amp; amp; b == 5) m = 11 endif c = 0: mn = o = 1 के लिए = 1: 1 यदि (डी == 1) एन = 5 एटीआईफ़ के लिए ई = 0: एन अगर (डी == 1 & amp; ए == 5) ओ = 11 एंडआईफ़ एफ = 0: op = 0: 1 के लिए = q = 1 यदि (जी == 1) p = 5 endif के लिए h = 0: p अगर (g == 1 & amp; एच == 5) q = 11 endif i = 0 के लिए : क्यू = यू = 1 के लिए जे = 0: 1 अगर (जे == 1) टी = 5 एटीआईफ़ के लिए k = 0: टी यदि (जे == 1 & amp; amp; के == 5) यू = 11 एंडीफ एल के लिए = 0: हमें = s + 1 fputs (myfile, num2str (ए)); fputs (myFile, "।"); fputs (myFile, num2str (ख)); fputs (myFile, "।"); fputs (myFile, num2str (ग)); fputs (myFile, ":"); fflush (stdout); fputs (myFile, num2str (घ)); fputs (myFile, "।"); fputs (myFile, num2str (ई)); fputs (myFile, "।"); fputs (myFile, num2str (च)); fputs (myFile, ":"); fflush (stdout); fputs (myFile, num2str (छ)); fputs (myFile, "।"); fputs (myFile, num2str (ज)); fputs (myFile, "।"); fputs (myFile, num2str (i)); fputs (myFile, ":"); fflush (stdout); fputs (myFile, num2str (जे)); fputs (myFile, "।"); fputs (myFile, num2str (के)); fputs (myFile, "।"); fputs (myFile, num2str (एल)); fputs (myFile, "\ n"); fflush (stdout); अंत अंत अंत अंत अंत अंत अंत अंत अंत अंत एंड एंड ओक्टेव में ऊपर कोड एक संख्या अनुक्रम उत्पन्न करने के लिए है जो एक पाठ फ़ाइल में लिख रहा है। इसमें निष्पादन को पूरा करने में कुछ दिन लगेंगे क्योंकि यह लगभग 2 ^ 36 नंबर पैदा कर रहा है। इसलिए किसी को भी कृपया हमें यह पता कर सकते हैं कि एचपीसी में इस कोड को समानांतर कैसे करें।
आपको समानांतर करने की ज़रूरत नहीं है इस; आप संकलित भाषा पर जाकर लगभग 10000x तक इस गति को बढ़ा सकते हैं। (गंभीरता से, नीचे देखें।) आक्टेव या यहां तक कि मटैब धीमे होने जा रहे हैं क्योंकि यह गुड़ों को चलाना है। वे बड़े मैट्रिक्स संचालन के लिए महान हैं, लेकिन नेस्टेड छोरों के टन, अगर उनमें से बयान धीमी गति से धीमी गति से धीमी गति से चलने वाला है आम तौर पर मैं फ़ोट्रान को ऑक्टेव / मैटलैब कोड को बढ़ाना का सुझाव देता हूं, लेकिन जब से आपको पहले से ही I / O फ़ाइल को मूल रूप से सी बयान के साथ लिखा गया है, तो इस कोड के समकक्ष लगभग खुद ही लिखते हैं: < कोड> # शामिल करें & lt; stdio.h & gt; Int main (int argc, char ** argv) {int a, b, c, d, e, f, g, h, i, j, k, l; Int s, r, m, n, o, p, q, u, t; फ़ाइल * myfile; रों = 1; आर = m = एन = ओ = पी = q = यू = टी = 19; Myfile = fopen ("अनुक्रम 2-सी। टी। टी। टी।", "डब्ल्यू"); के लिए (a = 0; a & lt; = 1; a ++) {if (a == 1) r = 5; (बी = 0; बी एंड एलटी; = आर, बी ++) के लिए {if (a == 1 & amp; amp; amp; बी == 5) m = 11; (सी = 0; सी & lt; = m; c ++) के लिए {n = ओ = 1 9; (डी = 0; डी & lt; = 1; d ++) के लिए {if (डी == 1) एन = 5; (ई = 0; ई & lt; = n; ई ++) के लिए (यदि (डी == 1 & amp; amp; ए == 5) ओ = 11; के लिए (f = 0; f & lt; = o; f ++) {p = q = 1 9; (जी = 0; जी & lt; = 1; g ++) के लिए {if (जी == 1) पी = 5; (एच = 0; एच & lt; = p; h ++) के लिए (यदि (जी == 1 & amp; एच = एच = 5) q = 11; के लिए (i = 0; i & lt; = q; i ++) {टी = यू = 1 9; (जे = 0; जे एंड एलटी; = 1; जे ++) के लिए (यदि (जे == 1) टी = 5; के लिए (k = 0; k & lt; = t; k ++) {if (j == 1 & amp; amp; k == 5) u = 11; (एल = 0; एल & lt; = u; l ++) के लिए {s ++; fprintf (myFile, "% d% d% d:।।।% d% d% d:।।।% d% d% d:।।% d% d% d \ n", एक, ख, ग, डी, ई, एफ, जी, एच, आई, जे, कश्मीर, एल); }}}}}}}}}}}} वापसी 0; } उपरोक्त अपने ऐक्टेव कोड को चलाने और एक मिनट के लिए इस सी कोड (-O3 के साथ संकलित) प्रत्येक, ऑक्टेव कोड अनुक्रम में लगभग 2,163 वस्तुओं के माध्यम से मिला, और संकलित सी कोड मिला 23,29 9,068 के माध्यम से तो यह अच्छा है।
समानांतर के संदर्भ में, इसे स्वतंत्र टुकड़ों में तोड़ना आसान है, लेकिन वे विशेष रूप से लोड संतुलित नहीं होंगे यदि आप (प्रक्रिया) 26 प्रक्रियाओं को शुरू करते हैं, और उन्हें (a = 0, b = 0), (a = 0, b = 1) ..., (a = 0, b = 1 9), (a = 1, B = 0), (a = 1, b = 1), .. (a = 1, b = 5), वे सभी स्वतंत्र रूप से चला सकते हैं और जब आप परिणाम पूरा कर लेंगे तब आप परिणाम जोड़ सकते हैं। केवल नीचे की ओर यह है कि ए = 0 नौकरियां एक = 1 नौकरियों की तुलना में कुछ हद तक धीमी गति से चलेंगे, लेकिन शायद यह शुरू करने के लिए काफी अच्छा है।
Comments
Post a Comment