મલ્ટિપ્રોસેસિંગ એ પાયથોન પ્રોગ્રામિંગમાં એક લોકપ્રિય તકનીક છે જે તમને એકસાથે બહુવિધ પ્રક્રિયાઓ ચલાવવા માટે પરવાનગી આપે છે, જે ઘણીવાર કાર્યક્ષમતામાં સુધારણા અને સિસ્ટમ સ્રોતોના વધુ કાર્યક્ષમ ઉપયોગમાં પરિણમે છે. આ લેખ ના ઉપયોગ માં ડાઇવ્સ મલ્ટિપ્રોસેસિંગ Python માં લાઇબ્રેરી, ખાસ કરીને પર ધ્યાન કેન્દ્રિત કરે છે નકશો કાર્ય મેપ ફંક્શન તમને દરેક આઇટમ પર પુનરાવર્તિત રીતે ફંક્શન લાગુ કરવા દે છે, જેમ કે સૂચિ, અને પરિણામો સાથે નવી સૂચિ પરત કરી શકો છો. મલ્ટિપ્રોસેસિંગનો લાભ લઈને, અમે વધુ કાર્યક્ષમતા અને માપનીયતા માટે આ પ્રક્રિયાને સમાંતર બનાવી શકીએ છીએ.
આ લેખમાં, અમે તે સમસ્યાનું અન્વેષણ કરીશું કે જેના માટે નકશા કાર્ય સાથે મલ્ટિપ્રોસેસિંગ એક ઉત્તમ ઉકેલ હોઈ શકે છે, સંબંધિત લાઇબ્રેરીઓ અને કાર્યોની ચર્ચા કરીશું, કોડનું પગલું-દર-પગલાં સમજૂતી પ્રદાન કરીશું અને કરોડરજ્જુ પર બનેલા સંબંધિત વિષયોની તપાસ કરીશું. મલ્ટિપ્રોસેસિંગ અને મેપ ફંક્શન.
મલ્ટિપ્રોસેસિંગ નકશો: સમસ્યા અને ઉકેલ
અમે જે સમસ્યાને હલ કરવાનો ધ્યેય રાખીએ છીએ તે દરેક આઇટમને મોટા પુનરાવર્તિત, જેમ કે સૂચિ, ટ્યૂપલ અથવા અન્ય કોઈપણ ઑબ્જેક્ટ કે જે પુનરાવૃત્તિને સમર્થન આપે છે તેમાં ફંક્શન લાગુ કરવાની કામગીરી અને કાર્યક્ષમતામાં સુધારો કરવાનો છે. જ્યારે આવા કાર્યોનો સામનો કરવો પડે છે, ત્યારે બિલ્ટ-ઇન મેપ ફંક્શન અથવા સૂચિની સમજણનો ઉપયોગ કરવો એકદમ ધીમી અને બિનકાર્યક્ષમ હોઈ શકે છે.
ઉકેલ એ છે કે પાયથોનમાં મલ્ટીપ્રોસેસિંગ લાઇબ્રેરીનો ઉપયોગ કરવો, ખાસ કરીને સમુચ્ચય વર્ગ અને તેના નકશો પદ્ધતિ નો ઉપયોગ કરીને મલ્ટિપ્રોસેસિંગ Pool.map() ફંક્શન, અમે બહુવિધ પ્રક્રિયાઓમાં અમારા કાર્યના અમલને વિતરિત કરી શકીએ છીએ.
કોડનું પગલું દ્વારા પગલું સમજૂતી
ચાલો કોડને તોડીએ અને મલ્ટીપ્રોસેસિંગ મેપ ફંક્શનનો અસરકારક રીતે ઉપયોગ કેવી રીતે કરવો તે સમજાવીએ:
import multiprocessing import time def square(n): time.sleep(0.5) return n * n # Create the list of numbers numbers = list(range(10)) # Initialize the multiprocessing Pool pool = multiprocessing.Pool() # Use the map function with multiple processes squared_numbers = pool.map(square, numbers) print(squared_numbers)
- પ્રથમ, આયાત કરો મલ્ટિપ્રોસેસિંગ મોડ્યુલ, જે Python માં સમાંતર પ્રક્રિયાનો ઉપયોગ કરવા માટે જરૂરી સાધનો ધરાવે છે.
- નામનું ફંક્શન બનાવો ચોરસ જે ફક્ત અડધી સેકન્ડ માટે ઊંઘે છે અને પછી તેના ઇનપુટ દલીલનો વર્ગ પરત કરે છે. આ ફંક્શન એવી ગણતરીનું અનુકરણ કરે છે જે પૂર્ણ થવામાં વાજબી સમય લે છે.
- નામની યાદી બનાવો નંબરો, જેમાં 0 થી 9 સુધીના પૂર્ણાંકો છે (સમાહિત).
- પ્રારંભ કરો એ સમુચ્ચય મલ્ટિપ્રોસેસિંગ મોડ્યુલમાંથી ઑબ્જેક્ટ. પૂલ ઑબ્જેક્ટ કાર્યકર પ્રક્રિયાઓને સંચાલિત કરવાના સાધન તરીકે સેવા આપે છે જેનો ઉપયોગ તમે તમારા કાર્યોને સમાંતર કરવા માટે કરશો.
- આ કૉલ કરો નકશો પૂલ ઑબ્જેક્ટ પર પદ્ધતિ, અને પાસ કરો ચોરસ કાર્ય અને નંબરો યાદી. નકશા પદ્ધતિ પછી પૂલમાં ઉપલબ્ધ કાર્યકર પ્રક્રિયાઓનો ઉપયોગ કરીને સંખ્યાઓની સૂચિમાંની દરેક આઇટમ પર એકસાથે ચોરસ ફંક્શન લાગુ કરે છે.
- વર્ગ_સંખ્યાઓની પરિણામી સૂચિ છાપો, જેમાં સંખ્યાઓની સૂચિમાંથી વર્ગ મૂલ્યો હોવા જોઈએ.
પાયથોન મલ્ટિપ્રોસેસિંગ લાઇબ્રેરી
અજગર મલ્ટિપ્રોસેસિંગ પુસ્તકાલય તમારા પ્રોગ્રામમાં સમાનતાના અમલીકરણ માટે સાહજિક માધ્યમ પ્રદાન કરે છે. તે સામાન્ય રીતે સમાંતર પ્રોગ્રામિંગ સાથે સંકળાયેલી કેટલીક જટિલતાને ઢાંકી દે છે, જેમ કે ઉચ્ચ-સ્તરના એબ્સ્ટ્રેક્શન ઓફર કરીને સમુચ્ચય. પૂલ વર્ગ બહુવિધ પ્રક્રિયાઓમાં કાર્યના વિતરણને સરળ બનાવે છે, વપરાશકર્તાને ન્યૂનતમ મુશ્કેલી સાથે સમાંતર પ્રક્રિયાના લાભોનો અનુભવ કરવામાં સક્ષમ બનાવે છે.
Python Itertools મોડ્યુલ અને સંબંધિત કાર્યો
જ્યારે મલ્ટિપ્રોસેસિંગ ઘણા સમાંતર કાર્યો માટે ઉત્તમ ઉકેલ છે, તે ઉલ્લેખનીય છે કે પાયથોન અન્ય લાઇબ્રેરીઓ અને સાધનો પણ પ્રદાન કરે છે જે સમાન જરૂરિયાતો પૂરી કરે છે. દાખલા તરીકે, itertools મોડ્યુલ, પુનરાવર્તિત સાધનો પર કામ કરતા કાર્યોની સંપત્તિ પ્રદાન કરે છે, ઘણી વખત સુધારેલ કાર્યક્ષમતા સાથે. જેમ કે કેટલાક itertools કાર્યો imap() અને imap_unordered() પુનરાવર્તિત પર ફંક્શન લાગુ કરવાની પ્રક્રિયાને સમાંતર બનાવી શકે છે. જો કે, એ નોંધવું અગત્યનું છે કે itertools મુખ્યત્વે ઇટરરેટર-આધારિત સોલ્યુશન્સ પર ધ્યાન કેન્દ્રિત કરે છે, જ્યારે મલ્ટિપ્રોસેસિંગ લાઇબ્રેરી સમાંતરતા માટે વધુ વ્યાપક અભિગમ પ્રદાન કરે છે, નકશા જેવા કાર્યોની બહાર વધારાના સાધનો અને ક્ષમતાઓ પ્રદાન કરે છે.