- GNU Parallel, E2E टेस्ट को parallel में चलाने के लिए उपयोगी है
- लेखक HTTP के ज़रिए चल रही live service पर लंबे समय तक चलने वाले test set के pass/fail अनुपात के आँकड़े इकट्ठा करना चाहता था
- शुरुआत में लेखक ने bash में nested loop का इस्तेमाल करके टेस्ट चलाए, लेकिन हर टेस्ट का execution time लंबा होने की वजह से यह तरीका धीमा था
- इसके बाद GNU Parallel का इस्तेमाल करके टेस्ट parallel में चलाए गए, और कम code में performance व functionality दोनों में बड़ा सुधार मिला
- GNU Parallel में यह निर्दिष्ट किया जाता है कि command parallel में चलें, और placeholder (
{1}, {2} आदि) को input value से बदला जाता है
- command के लिए input,
::: operator के बाद दिया जाता है, और उसे सभी संभावित combinations के रूप में command को प्रदान किया जाता है
- GNU Parallel, concurrency को नियंत्रित करने और resource contention से बचने के लिए options देता है, जैसे concurrent jobs की संख्या सीमित करना या हर job की शुरुआत में delay देना
- यह tool job completion result के साथ CSV file output करने की सुविधा भी देता है: duration, exit code, और captured stdout/stderr सहित
- लेखक GNU Parallel के लेखक Ole Tange की किताब की सिफारिश करता है, ताकि tool की और गहरी क्षमताओं को समझा जा सके: जैसे SSH का उपयोग करके दूसरे hosts पर jobs बाँटना, job completion time मॉनिटर करना, fail होने की संभावना वाली jobs को retry करना, बीच में रुके parallel execution को resume करना, या CPU usage के आधार पर job concurrency को सीमित करना
1 टिप्पणियां
Hacker News राय
-parallelparameter के साथ अपना अनुभव साझा किया, और command-line tools के जरिए parallelization की उपयोगिता पर जोर दिया