Automatic parallelization tool
ઘણા વર્ષોથી સમાંતર હાર્ડવેર માત્ર ડિસ્ટ્રિબ્યુટેડ કમ્પ્યુટિંગ માટે ઉપલબ્ધ હતું પરંતુ તાજેતરમાં તે લો એન્ડ કમ્પ્યુટર્સ માટે પણ ઉપલબ્ધ થઈ રહ્યું છે. તેથી સોફ્ટવેર પ્રોગ્રામરો માટે સમાંતર કાર્યક્રમો લખવાનું શરૂ કરવું અનિવાર્ય બની ગયું છે. પ્રોગ્રામરો માટે ક્રમિક રીતે વિચારવું સ્વાભાવિક છે અને તેથી તેઓ બહુ-થ્રેડેડ અથવા સમાંતર પ્રક્રિયા કાર્યક્રમો લખવા માટે ઓછા પરિચિત છે. સમાંતર પ્રોગ્રામિંગ માટે સિંક્રોનાઇઝેશન અને ડેડલોક અવોઇડન્સ જેવા વિવિધ મુદ્દાઓને સંભાળવાની જરૂર છે. પ્રોગ્રામરોને એપ્લિકેશન ક્ષેત્રમાં તેમની કુશળતા ઉપરાંત આવી એપ્લિકેશનો લખવા માટે વધારાની કુશળતાની જરૂર પડે છે. તેથી પ્રોગ્રામરો ક્રમિક કોડ લખવાનું પસંદ કરે છે અને મોટાભાગની લોકપ્રિય પ્રોગ્રામિંગ ભાષાઓ તેને ટેકો આપે છે. આ તેમને એપ્લિકેશન પર વધુ ધ્યાન કેન્દ્રિત કરવાની મંજૂરી આપે છે. તેથી, સ્વચાલિત સાધનોની મદદથી આવી ક્રમિક એપ્લિકેશનોને સમાંતર એપ્લિકેશનોમાં રૂપાંતરિત કરવાની જરૂર છે. જરૂરિયાત પણ બિન-તુચ્છ છે કારણ કે છેલ્લા કેટલાક દાયકાઓમાં લખાયેલા વારસાગત કોડની મોટી માત્રાનો ફરીથી ઉપયોગ કરવાની અને સમાંતર બનાવવાની જરૂર છે. સ્વયંસંચાલિત સમાંતરતાની જરૂરિયાત ભૂતકાળની તકનીકોએ FORTRAN અને C જેવી ભાષાઓ માટે ઉકેલો પૂરા પાડ્યા; જો કે, આ પૂરતા નથી. આ તકનીકો લૂપ અથવા કોડના ચોક્કસ વિભાગ જેવી ચોક્કસ પ્રણાલીને ધ્યાનમાં રાખીને સમાંતર વિભાગો સાથે વ્યવહાર કરે છે. મલ્ટીથ્રેડેડ એપ્લિકેશન જનરેટ કરતી વખતે સમાંતરતા માટેની તકો ઓળખવી એ એક મહત્વપૂર્ણ પગલું છે. એપ્લિકેશનોને સમાંતર બનાવવાની આ જરૂરિયાતને આંશિક રીતે એવા સાધનો દ્વારા સંબોધિત કરવામાં આવે છે જે સમાંતરતાનો ઉપયોગ કરવા માટે કોડનું વિશ્લેષણ કરે છે. આ સાધનો સંકલન સમય તકનીકો અથવા રન-ટાઇમ તકનીકોનો ઉપયોગ કરે છે. આ તકનીકો કેટલાક સમાંતર કમ્પાઇલર્સમાં બિલ્ટ-ઇન છે પરંતુ વપરાશકર્તાએ સમાંતર કોડને ઓળખવાની અને કોડને વિશેષ ભાષા રચનાઓ સાથે ચિહ્નિત કરવાની જરૂર છે. કમ્પાઇલર આ ભાષાની રચનાઓને ઓળખે છે અને સમાંતરતા માટે ચિહ્નિત કોડનું વિશ્લેષણ કરે છે. કેટલાક સાધનો લૂપ્સ જેવા કોડના માત્ર વિશેષ સ્વરૂપને સમાંતર બનાવે છે. તેથી ક્રમિક કોડને સમાંતર કોડમાં રૂપાંતરિત કરવા માટે સંપૂર્ણ સ્વચાલિત સાધન જરૂરી છે. સમાંતરકરણની સામાન્ય પ્રક્રિયા 1. આ પ્રક્રિયા કોડ વિભાગોને ઓળખવાથી શરૂ થાય છે જે પ્રોગ્રામરને લાગે છે કે સમાંતરતાની શક્યતાઓ છે. ઘણીવાર આ કાર્ય મુશ્કેલ હોય છે કારણ કે પ્રોગ્રામર જે કોડને સમાંતર કરવા માંગે છે તેણે મૂળ રૂપે વિચારણા હેઠળ કોડ લખ્યો નથી. બીજી શક્યતા એ છે કે પ્રોગ્રામર એપ્લિકેશન ડોમેનમાં નવો છે. આમ, સમાંતર પ્રક્રિયામાં આ પ્રથમ તબક્કો શરૂઆતમાં સરળ લાગે છે, તેમ છતાં તે ન પણ હોઈ શકે. 2. આગળનો તબક્કો ઓળખાયેલમાંથી કોડ વિભાગોને શોર્ટલિસ્ટ કરવાનો છે જે ખરેખર સમાંતર છે. આ તબક્કો ફરીથી સૌથી મહત્વપૂર્ણ અને મુશ્કેલ છે કારણ કે તેમાં ઘણું વિશ્લેષણ સામેલ છે. સામાન્ય રીતે સી/સી + + માં કોડ્સ માટે જ્યાં પોઇન્ટર સામેલ હોય છે તેનું વિશ્લેષણ કરવું મુશ્કેલ છે. કોડનો વિભાગ અન્ય કોઈ કોડ પર આધારિત છે કે કેમ તે તારણ કાઢવા માટે પોઇન્ટર ઉર્ફે વિશ્લેષણ, કાર્યોની આડઅસરોનું વિશ્લેષણ જેવી ઘણી વિશેષ તકનીકો જરૂરી છે. જો ઓળખાયેલ કોડ વિભાગોમાં નિર્ભરતા વધુ હોય તો સમાંતરતાની શક્યતાઓ ઘટે છે. 3. કેટલીકવાર કોડ બદલીને અવલંબન દૂર કરવામાં આવે છે અને સમાંતરકરણમાં આ આગળનો તબક્કો છે. કોડને એવી રીતે રૂપાંતરિત કરવામાં આવે છે કે કાર્યક્ષમતા અને તેથી આઉટપુટ બદલાતું નથી પરંતુ અન્ય કોડ વિભાગ અથવા અન્ય સૂચના પરની નિર્ભરતા, જો કોઈ હોય તો, દૂર કરવામાં આવે છે. 4. સમાંતરકરણનો છેલ્લો તબક્કો સમાંતર કોડ પેદા કરવાનો છે. આ કોડ કાર્યાત્મક રીતે હંમેશા મૂળ ક્રમિક કોડ જેવો જ હોય છે પરંતુ તેમાં વધારાની રચનાઓ અથવા કોડ વિભાગો હોય છે જે જ્યારે ચલાવવામાં આવે છે ત્યારે બહુવિધ થ્રેડો અથવા પ્રક્રિયાઓ બનાવે છે. ઓટોમેટિક પેરેલલાઇઝેશન ટેકનીક મુખ્ય લેખ ઓટોમેટિક પેરેલલાઇઝેશન પણ જુઓ. સ્કેન આ પહેલો તબક્કો છે જ્યાં સ્કેનર તમામ સ્થિર અને બાહ્ય ઉપયોગોને ઓળખવા માટે ઇનપુટ સ્રોત ફાઇલોને વાંચશે. ફાઇલની દરેક લીટીને ટોકનમાં અલગ કરવા માટે પૂર્વ-નિર્ધારિત પેટર્ન સામે તપાસવામાં આવશે. આ ટોકન્સ ફાઇલમાં સંગ્રહિત કરવામાં આવશે જેનો ઉપયોગ પછીથી વ્યાકરણ એન્જિન દ્વારા કરવામાં આવશે. વ્યાકરણ એન્જિન ચલ, લૂપ, નિયંત્રણ નિવેદનો, કાર્યો વગેરેને ઓળખવા માટે પૂર્વ-નિર્ધારિત નિયમો સાથે મેળ ખાતી ટોકન્સની પેટર્ન તપાસશે. કોડમાં. વિશ્લેષણ વિશ્લેષકનો ઉપયોગ કોડના વિભાગોને ઓળખવા માટે થાય છે જે એક સાથે ચલાવી શકાય છે. વિશ્લેષક સ્કેનર-પાર્સર દ્વારા પૂરી પાડવામાં આવેલ સ્થિર માહિતી માહિતીનો ઉપયોગ કરે છે. વિશ્લેષક સૌપ્રથમ એકબીજાથી સંપૂર્ણપણે સ્વતંત્ર હોય તેવા તમામ કાર્યો શોધી કાઢશે અને તેમને વ્યક્તિગત કાર્યો તરીકે ચિહ્નિત કરશે. પછી વિશ્લેષક શોધે છે કે કયા કાર્યોમાં નિર્ભરતા છે. સમયપત્રક સમયપત્રક અમલ અને શરૂઆતના સમયની દ્રષ્ટિએ તમામ કાર્યો અને એકબીજા પરની તેમની નિર્ભરતાની યાદી આપશે. શેડ્યૂલર ઉપયોગમાં લેવાતા પ્રોસેસરોની સંખ્યા અથવા એપ્લિકેશન માટે અમલના કુલ સમયની દ્રષ્ટિએ શ્રેષ્ઠ સમયપત્રક તૈયાર કરશે. કોડ જનરેશન શેડ્યૂલર તમામ કાર્યોની યાદી અને તેઓ જે સમય માટે અમલમાં મૂકશે તેની સાથે તેઓ કયા કોર પર અમલ કરશે તેની વિગતો જનરેટ કરશે. કોડ જનરેટર કોડમાં વિશેષ રચનાઓ દાખલ કરશે જે શેડ્યૂલર દ્વારા અમલ દરમિયાન વાંચવામાં આવશે. આ રચનાઓ શેડ્યૂલરને સૂચના આપશે કે કયા કોર પર કોઈ ચોક્કસ કાર્ય શરૂઆત અને અંતના સમય સાથે અમલમાં મૂકશે. સમાંતર સાધનો ફોરટ્રાન, સી, સી + + અને અન્ય ઘણી ભાષાઓ માટે સંખ્યાબંધ સ્વચાલિત સમાંતર સાધનો છે. YUCCA એ KPIT ટેક્નોલોજીસ લિમિટેડ પૂણે દ્વારા વિકસાવવામાં આવેલ સમાંતર સ્વચાલિત કોડ રૂપાંતરણ સાધન છે. તે સી સ્રોત કોડ તરીકે ઇનપુટ લે છે જેમાં બહુવિધ સ્રોત અને હેડર ફાઇલો હોઈ શકે છે. તે પીથ્રેડ્સ ફંક્શન્સ અને ઓપનએમપી કન્સ્ટ્રક્ટ્સનો ઉપયોગ કરીને રૂપાંતરિત મલ્ટી-થ્રેડેડ સમાંતર કોડ તરીકે આઉટપુટ આપે છે. YUCCA ટૂલ ટાસ્ક અને લૂપ લેવલ પેરેલલાઈઝેશન કરે છે. Par4All Par4All એ સી અને ફોરટ્રાન ક્રમિક કાર્યક્રમો માટે સ્વચાલિત સમાંતર અને ઓપ્ટિમાઇઝિંગ કમ્પાઇલર (વર્કબેન્ચ) છે. આ સોર્સ-ટુ-સોર્સ કમ્પાઇલરનો હેતુ હાલની એપ્લિકેશનોને વિવિધ હાર્ડવેર લક્ષ્યો જેમ કે મલ્ટીકોર સિસ્ટમ્સ, ઉચ્ચ પ્રદર્શન કમ્પ્યુટર્સ અને જી. પી. યુ. સાથે અનુકૂલન કરવાનો છે. તે એક નવો સ્રોત કોડ બનાવે છે અને આમ એપ્લિકેશનના મૂળ સ્રોત કોડને યથાવત રાખવાની મંજૂરી આપે છે. સીટસ સીટસ એ સોફ્ટવેર પ્રોગ્રામ્સના સ્રોત-થી-સ્રોત પરિવર્તન માટેનું સંકલન માળખું છે. આ પ્રોજેક્ટ પર્ડ્યુ યુનિવર્સિટી દ્વારા વિકસાવવામાં આવ્યો છે. સીટસ જાવામાં લખાયેલું છે. તે ઓટોમેટિક પેરેલલાઇઝેશન ટૂલ્સ અથવા કમ્પાઇલર્સ લખવા માટે મૂળભૂત માળખું પૂરું પાડે છે. કેટસ હાલમાં અમલમાં મૂકે છે તે મૂળભૂત સમાંતર તકનીકો ખાનગીકરણ, ઘટાડો ચલ માન્યતા અને ઇન્ડક્શન ચલ અવેજી છે. ફેબ્રુઆરી 2013માં એક નવું ગ્રાફિક યુઝર ઈન્ટરફેસ (GUI) ઉમેરવામાં આવ્યું હતું. સ્પીડઅપ ગણતરીઓ અને ગ્રાફ ડિસ્પ્લે મે 2013માં ઉમેરવામાં આવ્યા હતા. ક્લાયન્ટ-સર્વર મોડેલમાં સીટસ રિમોટ સર્વર મે 2013 માં ઉમેરવામાં આવ્યું હતું અને વપરાશકર્તાઓ વૈકલ્પિક રીતે સર્વર દ્વારા સી કોડને રૂપાંતરિત કરી શકે છે. આ ખાસ કરીને ત્યારે ઉપયોગી છે જ્યારે વપરાશકર્તાઓ બિન-લિનક્સ પ્લેટફોર્મ પર સીટસ ચલાવે છે. કેટસનું પ્રાયોગિક હુબ્ઝેરો સંસ્કરણ પણ મે 2013 માં અમલમાં મૂકવામાં આવ્યું હતું અને વપરાશકર્તાઓ વેબ બ્રાઉઝર દ્વારા કેટસને પણ ચલાવી શકે છે. પ્લુટો પ્લુટો એ પોલિહેડ્રલ મોડેલ પર આધારિત સ્વચાલિત સમાંતર સાધન છે. કમ્પાઇલર ઓપ્ટિમાઇઝેશન માટેનું પોલિહેડ્રલ મોડેલ એ એવા પ્રોગ્રામ્સનું પ્રતિનિધિત્વ છે જે લૂપ નેસ્ટ ઓપ્ટિમાઇઝેશન અને લૂપ પેરેલલાઇઝેશન જેવા ઉચ્ચ-સ્તરના પરિવર્તન કરવા માટે અનુકૂળ બનાવે છે. પ્લુટો સી પ્રોગ્રામ્સને એક સાથે બરછટ-દાણાદાર સમાંતરતા અને ડેટા સ્થાન માટે સ્રોતમાંથી સ્રોતમાં પરિવર્તિત કરે છે. મુખ્ય પરિવર્તન માળખું મુખ્યત્વે કાર્યક્ષમ ટાઇલિંગ અને ફ્યુઝન માટે એફાઇન પરિવર્તન શોધીને કામ કરે છે, પરંતુ તે સુધી મર્યાદિત નથી. મલ્ટિકોર્સ માટે ઓપનએમપી સમાંતર કોડ ક્રમિક સી પ્રોગ્રામ વિભાગોમાંથી આપમેળે પેદા કરી શકાય છે. પોલારિસ કમ્પાઇલર પોલારિસ કમ્પાઇલર ફોરટ્રાન77 પ્રોગ્રામને ઇનપુટ તરીકે લે છે, આ પ્રોગ્રામને પરિવર્તિત કરે છે જેથી તે સમાંતર કમ્પ્યુટર પર અસરકારક રીતે ચાલે, અને આ પ્રોગ્રામ સંસ્કરણને કેટલીક સંભવિત સમાંતર ફોરટ્રાન બોલીઓમાંથી એકમાં આઉટપુટ કરે છે. પોલારિસ તેના પરિવર્તનને કેટલાક "સંકલન પાસ" માં કરે છે. ઘણા સામાન્ય રીતે જાણીતા પાસ ઉપરાંત, પોલારિસમાં નીચેના કાર્યો કરતી અદ્યતન ક્ષમતાઓનો સમાવેશ થાય છેઃ એરે ખાનગીકરણ, ડેટા નિર્ભરતા પરીક્ષણ, ઇન્ડક્શન ચલ માન્યતા, આંતર પ્રક્રિયાગત વિશ્લેષણ અને પ્રતીકાત્મક કાર્યક્રમ વિશ્લેષણ. ઇન્ટેલ સી + + કમ્પાઇલર ઇન્ટેલ સી + + કમ્પાઇલરની ઓટો-પેરેલલાઇઝેશન સુવિધા આપમેળે ઇનપુટ પ્રોગ્રામના સીરીયલ ભાગોને સિમેન્ટીક રીતે સમકક્ષ મલ્ટી-થ્રેડેડ કોડમાં અનુવાદિત કરે છે. ઓટોમેટિક પેરેલલાઇઝેશન લૂપ્સ નક્કી કરે છે જે સારી વર્ક શેરિંગ ઉમેદવાર છે, સાચા પેરેલલ એક્ઝેક્યુશનને ચકાસવા માટે ડેટા-ફ્લો વિશ્લેષણ કરે છે, અને ઓપનએમપી નિર્દેશો સાથે પ્રોગ્રામિંગમાં જરૂરી હોય તે રીતે થ્રેડેડ કોડ જનરેશન માટે ડેટાને પાર્ટીશન કરે છે. ઓપનએમપી અને ઓટો-પેરેલલાઇઝેશન કાર્યક્રમો મલ્ટીપ્રોસેસર સિસ્ટમો પર વહેંચાયેલ મેમરીમાંથી પ્રદર્શન લાભ પ્રદાન કરે છે. ઇન્ટેલ સલાહકાર ઇન્ટેલ સલાહકાર 2017 એ વેક્ટરાઇઝેશન ઓપ્ટિમાઇઝેશન અને થ્રેડ પ્રોટોટાઇપિંગ ટૂલ છે. તે સમાંતર સાઇટ્સ શોધવા માટે તેના વર્કફ્લોમાં ઘણા પગલાંઓને એકીકૃત કરે છે, વપરાશકર્તાઓને વેક્ટરાઇઝેશન અને થ્રેડિંગ માટે લૂપ્સને ચિહ્નિત કરવા, ચિહ્નિત લૂપ્સ માટે લૂપ-કેરીડ ડિપેન્ડન્સીઝ અને મેમરી એક્સેસ પેટર્નને તપાસવા અને વેક્ટરાઇઝેશન અને થ્રેડિંગ માટે પ્રાગ્મા દાખલ કરવા માટે સક્ષમ કરે છે. ઓટોપાર ઓટોપાર એ એક એવું સાધન છે જે આપમેળે ઇનપુટ સીરીયલ સી/સી + + કોડ્સમાં ઓપનએમપી પ્રેગ્મા દાખલ કરી શકે છે. હાલના ઓપનએમપી નિર્દેશો સાથે ઇનપુટ પ્રોગ્રામ્સ માટે, જ્યારે યોગ્ય વિકલ્પ ચાલુ કરવામાં આવે ત્યારે ટૂલ ચોકસાઈને બે વાર તપાસશે. પરંપરાગત સાધનોની તુલનામાં, ઓટોપાર વધુ સમાંતર તકો શોધવા માટે વપરાશકર્તા જ્ઞાન (શબ્દાર્થ) નો સમાવેશ કરી શકે છે. આઇપેટ/ઓએમપી આ સાધન વપરાશકર્તાઓને ક્રમિક પ્રોગ્રામના ઓપનએમપી સમાંતરકરણ માટે જરૂરી સહાય પ્રદાન કરે છે. આ સાધન ઇમૅક્સ સંપાદક પર કાર્યોના સમૂહ તરીકે અમલમાં મૂકવામાં આવ્યું છે. પ્રોગ્રામ સમાંતરતા સાથે સંબંધિત તમામ પ્રવૃત્તિઓ, જેમ કે પ્રોગ્રામનો લક્ષ્ય ભાગ પસંદ કરવો, સહાય આદેશનો ઉપયોગ કરવો અને સાધન દ્વારા બતાવવામાં આવેલી સહાય માહિતીના આધારે પ્રોગ્રામમાં ફેરફાર કરવો, સ્રોત પ્રોગ્રામ સંપાદક વાતાવરણમાં નિયંત્રિત કરી શકાય છે. વિયેના ફોરટ્રાન કમ્પાઇલર (વી. એફ. સી.) એ એચ. પી. એફ. + (એચ. પી. એફ. નું ઓપ્ટિમાઇઝ્ડ વર્ઝન) માટે નવી સોર્સ-ટુ-સોર્સ પેરેલલાઇઝેશન સિસ્ટમ છે, જે અનિયમિત એપ્લિકેશનોની જરૂરિયાતોને સંબોધિત કરે છે. એસ. યુ. આઇ. એફ. કમ્પાઇલર એસ. યુ. આઇ. એફ. (સ્ટેનફોર્ડ યુનિવર્સિટી ઇન્ટરમીડિયેટ ફોર્મેટ) એ કમ્પાઇલર્સને શ્રેષ્ઠ બનાવવા અને સમાંતર બનાવવા માટે સહયોગી સંશોધનને ટેકો આપવા માટે રચાયેલ એક મફત માળખું છે. એસયુઆઇએફ એ સંપૂર્ણપણે કાર્યાત્મક કમ્પાઇલર છે જે ફોરટ્રાન અને સી બંનેને ઇનપુટ ભાષાઓ તરીકે લે છે. સમાંતર કોડ એ પ્રોગ્રામના એસ. પી. એમ. ડી. (સિંગલ પ્રોગ્રામ મલ્ટિપલ ડેટા) સમાંતર સી વર્ઝન તરીકે આઉટપુટ છે જે વિવિધ આર્કિટેક્ચર પર મૂળ સી કમ્પાઇલર્સ દ્વારા સંકલિત કરી શકાય છે. ઓમ્ની ઓપનએમપી કમ્પાઇલર તે ઓમ્ની ઓપનએમપી રનટાઇમ લાઇબ્રેરી સાથે જોડાયેલા મૂળ કમ્પાઇલર સાથે સંકલન કરવા માટે યોગ્ય સી કોડમાં ઓપનએમપી પ્રાગમા સાથે સી અને ફોરટ્રાન પ્રોગ્રામ્સનું ભાષાંતર કરે છે. તે લૂપ સમાંતરકરણ માટે કરે છે. ટાઈમિંગ-આર્કીટેક્ટ્સ ઓપ્ટિમાઇઝર તે કાર્યની ફાળવણી અને કાર્યને બહુવિધ કોર સાથે સમાંતર બનાવવા માટે સિમ્યુલેશન આધારિત અભિગમનો ઉપયોગ કરે છે. સિમ્યુલેશન આધારિત પ્રદર્શન અને વાસ્તવિક સમયના વિશ્લેષણના ઉપયોગ દ્વારા, કાર્ય ફાળવણીના વિવિધ વિકલ્પો એકબીજાની સામે બેન્ચમાર્ક કરવામાં આવે છે. અવલંબન તેમજ પ્રોસેસર પ્લેટફોર્મની ચોક્કસ અસરોને ધ્યાનમાં લેવામાં આવે છે. ટીએ ઓપ્ટિમાઇઝરનો ઉપયોગ એમ્બેડેડ સિસ્ટમ એન્જિનિયરિંગમાં થાય છે. TRACO તે ઇટરેશન સ્પેસ સ્લાઇસિંગ અને ફ્રી શેડ્યૂલ ફ્રેમવર્કનો ઉપયોગ કરે છે. કોર પ્રેસબર્ગર અંકગણિત અને સંક્રમક બંધ કામગીરી પર આધારિત છે. લૂપ અવલંબન સંબંધો સાથે રજૂ થાય છે. TRACO એ Omega Calculator, CLOOG અને ISL પુસ્તકાલયો અને Petit અવલંબન વિશ્લેષકનો ઉપયોગ કરે છે. કમ્પાઇલર સી/સી + + એપ્લિકેશન્સ માટે ફાઇન-અને બરછટ-દાણાદાર સમાંતરતા સાથે વધુ સારા સ્થાનને બહાર કાઢે છે. આ સાધન વેસ્ટ-પોમેરેનિયન યુનિવર્સિટી ઓફ ટેક્નોલોજી ટીમ દ્વારા વિકસાવવામાં આવ્યું છે; (બીલેકી, પાલ્કોવ્સ્કી, ક્લિમેક અને અન્ય લેખકો) http://traco.sourceforge.net. સેક્વેન્સએલ એ સામાન્ય હેતુની કાર્યાત્મક પ્રોગ્રામિંગ લેંગ્વેજ અને ઓટો-પેરેલલાઇઝિંગ ટૂલ સેટ છે, જેના પ્રાથમિક ડિઝાઇન ઉદ્દેશો મલ્ટી-કોર પ્રોસેસર હાર્ડવેર પર પ્રદર્શન, પ્રોગ્રામિંગની સરળતા, પ્લેટફોર્મ પોર્ટેબિલિટી/ઓપ્ટિમાઇઝેશન અને કોડ સ્પષ્ટતા અને વાંચનીયતા છે. તેનો મુખ્ય ફાયદો એ છે કે તેનો ઉપયોગ સીધો કોડ લખવા માટે થઈ શકે છે જે આપમેળે ઉપલબ્ધ તમામ પ્રક્રિયા શક્તિનો સંપૂર્ણ લાભ લે છે, પ્રોગ્રામરોને સમાંતરતાને ઓળખવા, વેક્ટરાઇઝેશનને સ્પષ્ટ કરવા, જાતિની પરિસ્થિતિઓને ટાળવા અને મેન્યુઅલ ડિરેક્ટિવ-આધારિત પ્રોગ્રામિંગ અભિગમોના અન્ય પડકારો જેમ કે ઓપનએમપી. સેક્વેન્સએલમાં લખાયેલા પ્રોગ્રામ્સને મલ્ટીથ્રેડેડ કોડમાં સંકલિત કરી શકાય છે જે સમાંતર ચાલે છે, જેમાં પ્રોગ્રામર તરફથી કેવી રીતે અથવા શું સમાંતર કરવું તે અંગે કોઈ સ્પષ્ટ સંકેતો નથી. 2015 સુધીમાં, સેક્વેન્સએલ કમ્પાઇલરની આવૃત્તિઓ સી + + અને ઓપનસીએલમાં સમાંતર કોડ જનરેટ કરે છે, જે તેને સી, સી + +, સી #, ફોરટ્રાન, જાવા અને પાયથોન સહિતની સૌથી લોકપ્રિય પ્રોગ્રામિંગ ભાષાઓ સાથે કામ કરવાની મંજૂરી આપે છે. પ્લેટફોર્મ-વિશિષ્ટ રનટાઇમ થ્રેડ્સનું સુરક્ષિત રીતે સંચાલન કરે છે, ઉપલબ્ધ કોરની સંખ્યા અનુસાર આપમેળે સમાંતર પ્રદર્શન પ્રદાન કરે છે. ઓ. એમ. પી. 2. એમ. પી. આઈ. ઓ. એમ. પી. 2. એમ. પી. આઈ. આપોઆપ ઓપન. એમ. પી. માંથી એમ. પી. આઈ. સ્રોત કોડ પેદા કરે છે. પ્રોગ્રામને ક્લસ્ટર, અથવા નેટવર્ક-ઓન-ચિપ આધારિત (એનઓસી-આધારિત) મલ્ટીપ્રોસેસર્સ-સિસ્ટમ-ઓન-ચિપ (એમપીએસઓસી) જેવા બિન-વહેંચાયેલ-મેમરી આર્કિટેક્ચરનો ઉપયોગ કરવાની મંજૂરી આપવી. OMP2MPI એક ઉકેલ આપે છે જે વધુ સારા પરિણામો પ્રાપ્ત કરવા માંગતા નિષ્ણાત દ્વારા વધુ ઓપ્ટિમાઇઝેશનની મંજૂરી આપે છે. OMP2HMPP OMP2HMPP, એક એવું સાધન છે જે ઉચ્ચ-સ્તરના સી સ્રોત કોડ (ઓપનએમપી) કોડને આપમેળે એચએમપીપીમાં અનુવાદિત કરે છે. ઉત્પન્ન થયેલ સંસ્કરણ ભાગ્યે જ હાથથી કોડિત એચએમપીપી સંસ્કરણથી અલગ હશે, અને 113% ની નજીક એક મહત્વપૂર્ણ ઝડપ પ્રદાન કરશે, જેને પછીથી હાથથી કોડિત CUDA દ્વારા સુધારી શકાય છે. એમમ્ટ્રિક્સ પેરેલલ સ્ટુડિયો એમમ્ટ્રિક્સ પેરેલલ સ્ટુડિયો એ એમમ્ટ્રિક્સ ટેક્નોલોજીસ જી. એમ. બી. એચ. દ્વારા વિકસાવવામાં આવેલ ઇન્ટરેક્ટિવ જી. યુ. આઇ. સાથે સંયુક્ત સ્રોત-થી-સ્રોત પેરેલલાઇઝેશન ટૂલ છે. તે C, MATLAB, સિમુલિંક, સાયલેબ અથવા Xcos સ્રોત કોડને ઇનપુટ તરીકે લે છે અને આઉટપુટ તરીકે સમાંતર C કોડ જનરેટ કરે છે. તે સમાંતર પ્રોગ્રામ માટે સ્થિર સમયપત્રક અને સંદેશ પસાર કરતા API પર આધાર રાખે છે. સમગ્ર સમાંતર પ્રક્રિયાને નિયંત્રિત કરવામાં આવે છે અને અંતિમ વપરાશકર્તા દ્વારા સમાંતર નિર્ણયોને સક્ષમ કરતી ઇન્ટરેક્ટિવ GUI માં વિઝ્યુઅલાઈઝ કરવામાં આવે છે. તે જી. પી. યુ. અને એફ. પી. જી. એ. પ્રવેગકો સાથે જોડાયેલા એમ્બેડેડ મલ્ટીકોર આર્કિટેક્ચરને લક્ષ્ય બનાવે છે. CLAW કમ્પાઇલર CLAW કમ્પાઇલર ઓપનએમપી અથવા ઓપનએસીસી પ્રાગમા સાથે સંવર્ધિત ચોક્કસ સુપરકોમ્પ્યુટર લક્ષ્ય માટે યોગ્ય ફોરટ્રાન કોડમાં ક્લો પ્રાગમા સાથે ફોરટ્રાન પ્રોગ્રામ્સનું ભાષાંતર કરે છે. PASH એ યુનિક્સ શેલ સ્ક્રિપ્ટ્સ માટે સમાંતર કમ્પાઇલર છે. ઓટોમેટિક પેરેલલાઇઝેશન ઇન્ટેલ સી + + કમ્પાઇલર સ્કેલેબલ પેરેલલિઝમ સિક્વેન્સ એલ બીએમડીએફએમ સંદર્ભો બાહ્ય લિંક્સ ઓટોપાર પ્લુટો-કમ્પાઇલર પાર4ઓલ કેટસ ટ્રેકો ઓએમપી2એમપીઆઈ ઓએમપી2એચએમપીપી એમટ્રિક્સ પેરેલલ સ્ટુડિયો પેરેલલ કમ્પ્યુટિંગ પણ જુઓ.