2012-06-10 13 views
18

मैं एक वेब एप्लिकेशन बनाने की तलाश में हूं जो उपयोगकर्ता के लिए कुछ संभाव्यता ग्राफ उत्पन्न करने के लिए अनुसंधान-गहन एमसीएमसी (Markov chain Monte Carlo) पर मांग पर गणना की आवश्यकता है।लघु कार्य के लिए अमेज़ॅन ईसी 2 ऑन-डिमांड वर्कर्स

प्रतिबंध:

  1. जाहिर है मैं वेब अनुप्रयोग सामने के अंत के रूप में एक ही सर्वर पर संसाधन प्रधान गणनाएं नहीं करना चाहती है, तो इन कार्यों को एक कार्यकर्ता को हस्तांतरित कर दिया करने की जरूरत है उदाहरण

  2. ये गणनाएं सीपीयू का एक अच्छा राशि लेने के लिए और मैं संभव (उम्मीद सेकंड, नहीं मिनट) के रूप में के रूप में कम विलंबता रखना चाहते हैं, तो मैं beefier हार्डवेयर पर गणनाएं पसंद करेंगे।

  3. मैं, ~ 66 ¢/घंटा x 24 घंटे/दिन पर एक मांसल EC2 उदाहरण चलाने के लिए खर्च नहीं उठा सकते तो पर मांग या स्थान अनुरोध उदाहरणों शायद जरूरी हैं।

    1. भागो एक सस्ते, सस्ती कार्यकर्ता उदाहरण 24 घंटे एक दिन है जो एक समय अमेज़न SWF (या SQS द्वारा प्रबंधित पर एक कार्य लेता है:

    विकल्प यहां मैं ले कर आए हैं कर रहे हैं)।

    विपक्ष:

    • उच्च विलंबता - सस्ता हार्डवेयर, लम्बे समय तक प्रतीक्षा करें।



  4. स्पोन एक beefier कार्यकर्ता उदाहरण प्रति-कार्य (अप काता जब भी कोई काम कतार में जोड़ा जाता है) और पूरा होने पर उदाहरण समाप्त।

    विपक्ष:

    • महंगा/बेकार - मैं सर्वर हर बार पर एक घंटे के लिए भुगतान कर लिया जाएगा और केवल मेरी गणना

    • स्टार्टअप भूमि के ऊपर के लिए सेकंड का उपयोग कर - मांग पर एक नया ईसी 2 इंस्टेंस कताई करेगा गैर-नगण्य विलंबता ( पूरी तरह से ऑफ़सेट करना बीफियर हार्डवेयर का उपयोग करने का उद्देश्य)?



  5. # 2 की तरह लेकिन कम बोली EC2 स्थान अनुरोध के साथ।

    विपक्ष:

    • स्टार्टअप भूमि के ऊपर - देखें # 2

    • inconsistancy? - मैंने से पहले स्पॉट अनुरोधों के साथ कभी काम नहीं किया है, इसलिए मुझे नहीं पता कि इस तरह के समाधान पर अस्थिर या हाथ कितना होगा ... क्या मुझे बनाने के लिए लगातार अपनी बोलियां समायोजित करनी है, मुझे यकीन है कि मैं अभी भी कार्य प्राप्त कर सकता हूं पीक आवर्स में किया? इसके अलावा, मैं मैं बारीकी से मेरी प्रक्रियाओं की निगरानी के लिए सुनिश्चित करें कि वे बाधित नहीं कर रहे हैं मध्य गणना बनाने के लिए होगा लगता है।



  6. संकर समाधान के कुछ प्रकार जहां मैं सक्रिय रूप से मांसल-हार्डवेयर कार्यकर्ता उदाहरणों और उनके भार और समझदारी से स्पिन को पर नजर रखने और घंटे पर उदाहरणों को समाप्त लागत का एक इष्टतम संतुलन बनाए रखने के और उपलब्धता

    विपक्ष:

    • जटिल और महंगा सेटअप - एक अच्छा कामयाब सेवा नहीं है जब तक वहाँ इस तरह सामान को संभालने के लिए, मैं सभी कि बुनियादी ढांचे अपने आप ऊपर के सभी सेट करने के लिए चाहता हूँ ...

मैं कुछ सेवा है जहाँ मैं बजाय मिनट आधार प्रति घंटा के लिए एक मिनट पर एक उच्च उपलब्ध मांग पर हार्डवेयर के लिए भुगतान कर सकते हैं वहाँ था चाहते हैं।

  • आप इस समस्या को कैसे हल करने की सलाह देते हैं होगा:

    तो मेरे सवालों का अनुसरण कर रहे हैं?

  • वहाँ एक अच्छा EC2 उदाहरण के प्रबंधन समाधान है कि अमेज़न SWF के शीर्ष पर बैठते हैं और मुझे लोड संतुलन में मदद और निष्क्रिय कार्यकर्ताओं को समाप्त कर सकता है है?

  • स्पॉट-अनुरोध बोलियों मेरी समस्या का समाधान या वे और अधिक कार्यों के लिए जो जरूरी तुरंत पूरा हो जाने की जरूरत नहीं है के लिए उपयुक्त हैं चाहेंगे?

+0

यदि आपके एमसीएमसी को पायथन में कार्यान्वित करना संभव है, तो आप Google App Engine का उपयोग कर सकते हैं। ऐप इंजन बिलिंग ज्यादातर ईसी 2 के उदाहरण किराए पर लेने के बजाय आपके एप्लिकेशन का उपयोग करने वाले संसाधनों पर आधारित होती है। – jthetzel

+0

दुर्भाग्यवश, मैं आर पर काफी अटक गया हूं ... यह भारी भारोत्तोलन को संभालने में मदद करता है और जिन लोगों के साथ मैं काम कर रहा हूं वे गणित के लोग हैं, प्रोग्रामर नहीं, इसलिए यह मुझे बनाए रखने के लिए मेरे पास आ जाएगा। – mikegreiling

+1

[renjin प्रोजेक्ट] (http://code.google.com/p/renjin/) भी है, जिसका उद्देश्य एक जेवीएम आर दुभाषिया होना है। आखिरकार, आप जावा ऐप इंजन पर आर चलाने के लिए इसका उपयोग करने में सक्षम होना चाहिए, लेकिन मुझे नहीं पता कि इस समय यह कितना स्थिर है। – jthetzel

उत्तर

4

एक और विकल्प है जिसे आप जानते नहीं हैं। मैं वास्तव में बस उस पर ठोकर खाई: http://multyvac.com

मुझे इसका उपयोग करने का कोई अनुभव नहीं है (इसलिए मैं इसके लिए झुका नहीं सकता), लेकिन ऐसा लगता है कि मैंने देखा है कि वास्तव में वास्तविक "उपयोगिता कंप्यूटिंग" प्रदान करता है। यह सिर्फ अजगर के साथ शुरू हुआ, लेकिन अब किसी भी भाषा का समर्थन करता है।

+0

यह सही दिखता है! कंप्यूटिंग कार्यों को मिलीसेकंद में प्रक्षेपित किया गया है ... मैं इसके साथ खेलना चाहता हूं और देख सकता हूं कि यह मेरा आवेदन चलाएगा या नहीं। – mikegreiling

+0

उत्कृष्ट। मुझे यह देखने के लिए फॉलो-अप सुनने में दिलचस्पी होगी कि यह अच्छा है या नहीं। – jman

+0

मैंने यह उत्तर संपादित किया है - ऐसा लगता है कि PiCloud बंद है। मुझे लगता है कि मुझे सही प्रतिस्थापन मिला: http://docs.multyvac.com/introduction.html#relation-to-picloud – Kobi

2

मेरी इच्छा है कि वहां कुछ सेवा थी जहां मैं अत्यधिक उपलब्ध ऑन-डिमांड हार्डवेयर के लिए एक मिनट से मिनट के आधार पर भुगतान कर सकता था।

सेवा AWS Lambda है, जो उपलब्ध है जब आप प्रश्न पूछा नहीं किया गया है कि:

लैम्ब्डा उच्च-उपलब्धता गणना संरचना पर अपने कोड चलाता है और गणना संसाधनों के सभी प्रशासन करता है, सहित सर्वर और ऑपरेटिंग सिस्टम रखरखाव, क्षमता प्रोविजनिंग और स्वचालित स्केलिंग

Pricing:

0,123,

आप अपने कार्यों और समय अपने कोड निष्पादित

अवधि समय जब तक यह रिटर्न या अन्यथा समाप्त हो जाता है अपने कोड को क्रियान्वित करने शुरू होता है से की जाती है, के लिए अनुरोध की संख्या के आधार पर चार्ज किया जाता है तक बढ़ाना निकटतम 100ms

तुम भी एक HTTP endpoint के साथ एक लैम्ब्डा समारोह लपेट कर सकते हैं, संभवतः अपने आवेदन से इस परत को हटाने:

आप अमेज़न एपीआई गेटवे का उपयोग कर एक कस्टम RESTful API को परिभाषित करते हुए HTTPS पर एक लैम्ब्डा समारोह आह्वान कर सकते हैं। यह आपको अपने फ़ंक्शन के लिए एक एंडपॉइंट देता है जो आरईएसटी कॉल जैसे जीईटी, पुट और पोस्ट का जवाब दे सकता है। अमेज़ॅन एपीआई गेटवे के साथ एडब्ल्यूएस लैम्ब्डा का उपयोग करने के बारे में और पढ़ें।

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