प्रयोग: धीमे build time की छिपी हुई लागत
(github.blog)- "तेज़ build time कंपनी के लिए क्यों महत्वपूर्ण है" और "क्या शक्तिशाली cloud resources वास्तव में महंगे हैं?" को प्रयोग के ज़रिए साबित करना
- GitHub Large Runner 2~64-core पर build time का परीक्षण (Fedora Linux kernel)
धीमे build time का कंपनी पर पड़ने वाला खर्च
- अगर डेवलपर का औसत वार्षिक वेतन $150K माना जाए, तो प्रति घंटा $75
- अगर build में 1 घंटा लगता है और डेवलपर उस दौरान कुछ और नहीं करता, तो कंपनी को सीधे $75 का खर्च उठाना पड़ता है
- परिणाम (Fedora 36)
- core (प्रति मिनट कीमत) - कुल build time - प्रति build लागत - डेवलपर लागत (1 व्यक्ति)
- 2-core($0.008/मिनट) - 310 मिनट - $2.48 - $389.98
- 8-core($0.0032/मिनट) - 92 मिनट - $2.94 - $117.94
- 16-core($0.064/मिनट) - 55 मिनट - $3.52 - $72.27
- 32-core($0.128/मिनट) - 35 मिनट - $4.48 - $48.23
- 64-core($0.256/मिनट) - 27 मिनट - $6.91 - $40.66
- निष्कर्ष: जितने अधिक डेवलपर काम कर रहे हों, उतना ही अधिक शक्तिशाली hardware पर खर्च करना अधिक कुशल है
context switching का कंपनी पर पड़ने वाला खर्च
- मान लें कि build चलने के दौरान डेवलपर कोई दूसरा काम करता है
- context switching की भी एक लागत होती है। शोध के अनुसार इसमें औसतन लगभग 23 मिनट लगते हैं
- व्यक्तिगत तौर पर, लगता है कि जिस काम पर गहराई से ध्यान लगा हो उससे दूसरे काम पर जाने में लगभग 1 घंटा लग जाता है
- परिणाम (30~15 मिनट के हिसाब से)
- core - build time - प्रति build लागत - आंशिक डेवलपर लागत (1 व्यक्ति, 30 मिनट) - आंशिक डेवलपर लागत (1 व्यक्ति, 15 मिनट)
- 2-core - 310 - $2.48 - $39.98 - $21.23
- 16-core - 55 - $3.52 - $41.02 - $22.23
- 64-core - 27 - $6.91 - $44.41 - $25.66
- यदि डेवलपर लागत $75 प्रति घंटा मानी जाए, तो कंप्यूटर पर अधिक खर्च करना कहीं ज़्यादा कुशल है
- सबसे महंगा 64-core भी एक डेवलपर की प्रति घंटा लागत के केवल पाँचवें हिस्से के बराबर है
निष्कर्ष
- बेहतर hardware पर पैसा खर्च करना वास्तव में अधिक सस्ता पड़ता है, और डेवलपर्स के लिए भी बेहतर है (व्यवधान कम होते हैं)
- ऊपर के प्रयोग में, build time पर अतिरिक्त $4~5 खर्च करने से 1 डेवलपर के लिए $40 और 5 लोगों की टीम के लिए $200 से अधिक की बचत होती है, साथ ही task switching में लगने वाला 1 घंटा भी बच जाता है
- बेशक, बड़े पैमाने की कंपनियों में प्रति build $4~5 खर्च करना काफ़ी बड़ा हो सकता है, लेकिन उसमें डूबने वाली productivity cost भी उतनी ही बड़ी होती है
- बेहतर CPU performance के लिए पैसा खर्च करना समय के साथ अपना प्रतिफल देता है।
बेशक, डेवलपर्स इसके लिए आपका आभार मानेंगे
9 टिप्पणियां
सहमत
https://xkcd.com/303/
लगता है कि build time के दौरान ठीक से कोई काम न बचना पूरी दुनिया की साझा समस्या है।
वाह, यह सच में वही बात है जिसे लेकर मैं जिज्ञासु था/थी। GitHub ब्लॉग में भी उम्मीद से ज़्यादा देखने लायक चीज़ें हैं। यह जानकर तसल्ली हुई कि build करते समय इधर-उधर कुछ और करने लगना या लगातार उसी की चिंता करते रहना सिर्फ़ मेरे साथ ही नहीं होता।
मानता हूँ। Plus notebook के बजाय desktop पसंद है।
मैं सहमत हूँ। मैं एक deep learning researcher हूँ, इसलिए एक साथ कई डिवाइस इस्तेमाल करता हूँ।
आम तौर पर मैं अक्सर experiments चलाता रहता हूँ, इसलिए कई बार सभी resources इस्तेमाल हो रहे होते हैं।
ऐसे में बीच-बीच में खाली समय बन जाता है।
और experiment के दौरान दूसरे काम करना भी अनजाने में ध्यान भटका देता है।
क्या औसत वार्षिक वेतन $150k है?
PC या सर्वर की performance सीमाओं की वजह से कभी-कभी झुंझलाहट हुई है, और यह साफ़ महसूस हुआ कि जब सब कुछ तेज़ी से चलता है, तब की तुलना में productivity कम हो जाती है।
लेकिन यह बात सही है.
पहले मैंने ऐसे development पर काम किया है जहाँ build में हर बार 1 घंटा लग जाता था...
build चलाते ही हमेशा उसके खत्म होने तक किसी और काम में लग जाता था, हाहा
build चलने के दौरान PC भी कभी-कभी धीमा हो जाता था..
और चाहे व्यस्त होने की वजह से कोई दूसरा काम कर भी रहा हूँ, फिर भी build की progress बीच-बीच में चेक करता रहता था, इसलिए ठीक से फोकस नहीं हो पाता था.
यह GitHub Large Runner के अच्छे build instance इस्तेमाल करने वाला एक प्रमोशनल लेख तो है, लेकिन...
"डेवलपर्स को वह सबसे महंगा उपकरण खरीदकर दीजिए जो बजट अनुमति देता है" — The Joel Test का #9 वाला बिंदु cloud पीढ़ी पर भी बिल्कुल वैसे ही लागू होता है.