2012-11-20 26 views
5

में समानांतर निष्पादन लागू करें मुद्रा पर एसआईसीपी धारा 3.4 (योजना में धारावाहिक) में एक समान प्रक्रिया है जिसे वर्णित किया गया है लेकिन एमआईटी योजना में लागू नहीं किया गया है। मुझे आश्चर्य है कि किसी ने वास्तव में इसे लागू किया है; यदि नहीं, तो इस तरह की प्रक्रिया को लागू करने में कोई कैसे शुरू होगा?योजना

(define (parallel-execute . procs) 
    (map thread-wait 
     (map (lambda (proc) (thread proc)) 
      procs))) 

मैं गारंटी नहीं दे सकते यह parallel-execute प्रक्रिया के रूप में एक ही अर्थ विज्ञान है:

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-23.html#%_sec_3.4.1

+0

इसे लागू करने के लिए इसे मेटा-सर्कुलर दुभाषिया स्तर पर बनाया जाएगा। –

उत्तर

5

यह मैं कैसे खंड में अभ्यास को सुलझाने के लिए parallel-execute कार्यान्वित SICP का 3.4, का उपयोग कर रैकेट है पुस्तक में परिभाषित, लेकिन यह मुझे अभ्यास को हल करने की अनुमति दी।

+0

थ्रेड-प्रतीक्षा का उपयोग करने का उद्देश्य क्या है? – Mark

+0

@ मार्क प्रतीक्षा 'जब तक सभी धागे निष्पादन जारी रखने से पहले अपनी नौकरियां समाप्त नहीं कर लेते –

1

जीएनयू गुइल में प्रक्रिया को parallel के रूप में लागू किया गया है। इसे एक विशेष रूप के रूप में परिभाषित किया गया है और (use-modules (ice-9 threads)) से उपलब्ध है। यदि आप इसे स्वयं लागू करना चाहते हैं, तो आप इस मॉड्यूल के स्रोत कोड पर एक नज़र डाल सकते हैं।

3

इस पुस्तक की आधिकारिक साइट एक कार्यान्वयन parallel.scm प्रदान करती है। इस तरह ओपन एमआईटी योजना:

mit-scheme -load PATH/parallel.scm 

या अपने योजना स्रोत फ़ाइल के सिर पर इस

(load "PATH/parallel.scm") 

डाल दिया।

1

वास्तव में आप निम्न पैकेज के साथ रैकेट में सभी आवश्यक कार्यान्वयन लोड कर सकते हैं। बस इसे परिभाषाओं या इंटरैक्शन विंडो में टाइप करें और आवश्यक पैकेज स्थापित किया जाएगा और जब आपको इसकी आवश्यकता हो, तो परिभाषा विंडो में एक ही टिप्पणी शामिल करें:

(आवश्यकता है (ग्रह dyoo/sicp-concurrency: 1: 2/sicp-concurrency))