एक क्लस्टर? आराम से!

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

तो, हमारे पास 4 एचपी सर्वर हैं, जिनमें से 3 को क्लस्टर किया जाएगा, और एक प्रबंधन कंसोल होगा। सभी सर्वरों पर, लिनक्स SLES 10 SP2 और ओपनएमपीआई को तैनात किया जाएगा, और कंसोल और सर्वर के बीच पासवर्ड रहित SSH का आयोजन भी किया जाएगा।

आइए शुरू:

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

ओपनएमपीआई स्थापित करने के बाद, हमारे काम का अगला चरण क्लस्टर के प्रत्येक नोड पर पाई की संख्या की गणना करने के लिए एक कार्यक्रम संकलित करना होगा। ऐसा करने के लिए, हमें libopencdk पैकेज की आवश्यकता है, जो YAST में मौजूद है, और पाई नंबर ( फ्लॉप्स.एफ ) की गणना के लिए प्रोग्राम का स्रोत कोड है। पैकेज स्थापित होने के बाद और प्रोग्राम को डायरेक्टरी में रखा गया है जो क्लस्टर और कंट्रोल नोड (कंसोल) के सभी नोड्स पर समान होगा, हम प्रोग्राम को संकलित करने के लिए आगे बढ़ते हैं:
mpif77 फ़्लॉप.फ़-फ़्लॉप

Ssh के माध्यम से पासवर्ड रहित पहुँच सेट करें, सब कुछ सरल है:

1) हम क्लस्टर के कंसोल पर जाते हैं और कमांड के साथ rsa-key उत्पन्न करते हैं:
ssh-keygen -t rsa
2) कंसोल की सार्वजनिक कुंजी (रूट / .ssh / id_rsa.pub) को मेरे मामले में क्लस्टर के सभी नोड्स में कॉपी करें:
scp /root/.ssh/id_rsa.pub server1: /root/.ssh
3) क्लस्टर के प्रत्येक नोड पर, एक एक्सेस फाइल बनाएं:
cat id_rsa.pub >> अधिकृत_की
पासवर्ड रहित पहुँच तैयार है।

अगला कदम हमारे सभी समूहों के नोड्स की एक सूची के साथ एक फ़ाइल बनाना है, इसे openmpi.host कहते हैं और इसे फ़ोल्डर में हमारे परीक्षण कार्यक्रम के साथ पाई की संख्या की गणना के लिए डालते हैं। किसी फ़ाइल में नोड्स नाम या पते द्वारा निर्दिष्ट किए जा सकते हैं। उदाहरण के लिए:
192.168.0.1
192.168.0.2
192.168.0.3
Serv1
Serv2
Serv3

तो, कंसोल और क्लस्टर नोड्स का कॉन्फ़िगरेशन पूरा हो गया है, परीक्षण चरण पर जाएं:

हम प्रोग्राम को 1 सर्वर पर चलाते हैं, इसके लिए कंट्रोल नोड पर, कमांड चलाते हैं:
mpirun -hostfile /var/mpi/openmpi.host -np 1 var / mpi / फ़्लॉप

जहां:
-गणना में उपयोग किए जाने वाले क्लस्टर नोड्स की संख्या।
गणना समय (ओं) - समय गणना संचालन।
क्लस्टर गति (MFLOPS) - प्रति सेकंड फ्लोटिंग पॉइंट ऑपरेशन की संख्या।


हमें निम्न परिणाम मिलते हैं:

गणना समय = 4.3
क्लस्टर गति = 418 MFLOPS

क्लस्टर में 1 और सर्वर जोड़ें:
MPirun -hostfile /var/mpi/openmpi.host -np 2 var / mpi / फ़्लॉप

हमें निम्न परिणाम मिलते हैं:
गणना समय = 1.82
क्लस्टर गति = 987 MFLOPS

क्लस्टर में अंतिम 3 सर्वर जोड़ें:
MPirun -hostfile /var/mpi/openmpi.host -np 3 var / mpi / फ़्लॉप

हमें निम्न परिणाम मिलते हैं:
गणना समय = 1.18
क्लस्टर गति = 1530 MFLOPS

ऑपरेशन की गणना का समय (सेकंड):



प्रति सेकंड फ्लोटिंग पॉइंट ऑपरेशंस की संख्या (MFLOPS):



प्राप्त आंकड़ों का विश्लेषण करने के बाद, हम यह निष्कर्ष निकाल सकते हैं कि क्लस्टर में एक नया नोड जोड़ते समय, पूरे सिस्टम का प्रदर्शन (1 / N) * 100% बढ़ जाता है।

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

UPD: uMg और 80x86 की रचनात्मक आलोचना के लिए धन्यवाद, लेख के अनुरूप परिवर्तन किए गए।

Source: https://habr.com/ru/post/In142218/


All Articles