Parallel language & compilers

Download Parallel language & compilers

Post on 23-Jan-2017

25 views

Category:

Engineering

4 download

TRANSCRIPT

Parallel Language and Compiler ACA PresentationParallel Language & CompilersPresented by-Diksha R. GuptaRoll no.:- 7INTRODUCTIONThe environment for parallel computers is much more demanding than that for sequential computersThe programming environment is a collection of software tools and system software supportTo break this hardware/software barrier , we need a parallel software environmentWhich provide better tools for user to implement parallelism and to debug programsLANGUAGE FEATURES Features are idealized for general purpose application. Some of the features are identified with existing language /compiler development.Language features are classified into six categoriesCATEGORIESOptimization features.Availability features.Synchronization /communication features.Control of parallelismData parallelism featuresProcess management featuresOPTIMIZATION FEATURESThis features converting sequentially coded programs into parallel forms.The purpose is to match the software with the hardware Parallelism in the target machine.Automated parallelizer(alliant FX fortan)Semiautomed parallelizer(programers intrection)Interractive restructure support(static analyser , run time static , data flow graph,)AVAILABILTY FEATURESFeature enhance user friendliness . Make the language portable to a larger class of parallel computerExpand the applicability of software librariesScalabilty scalable to the number of processors available and independent of hardware topologyCompatibility-compatible with establishment sequentialPortability portable to shared memory multiprocessors , message passing multicomputers , or bothSYNC/COMMUN FEATURESSingle assignment languagesRemote producer callData flow languages such as IDSend /receive for message passingBarriers ,mailbox , semaphores , monitorsCONTROL OF PARALLELISMCoarse ,medium, or fine grainsExplicit versus implicit parallelismGlobal parallelism in the entire programTake spilt parallelismShared task queueDATA PARALLELISM FEATURESUsed to specify how data are accessed and distributed in either SIMD and MIMD computersRun- time automatic decompositionMapping specificationVirtual processor supportDirect access to shared dataSPMD(single program multiple data)PROCESS MANAGEMENT FEATURESNeeded to support the efficient creation of parallel processes , implementation of multithreading or multitasking.Dynamic process creation at run timeLight weight processes(threads)- compare to UNIX(heavyweight)processesReplicated workPartitioned networksAutomatic load balancingPARALLEL LANGUAGE CONSTRUCTSpecial language construct and data array expression for exploiting parallelism in program. First is FORTRAN 90 array notation. Parallel flow control is achieve using do across and do all type of keyword which is use in the FORTRAN 90. Same we also use FORK and JOIN method. COMPILERSUsing high level language in source codeIts become a necessity in modern computerROLE OF COMPILERRemove the burden of program optimization and code generation from the programmer.THREE PHASES OF COMPILERFLOW ANALYSISOPTIMIZATIONCODE GENERATIONFLOW ANALYSISProgram flow pattern in order to determine data and control dependence in the source codeFlow analysis is conducted at different execution levels on different parallel computersInstruction level parallelism is exploited in super scalar or VLSI processors , loop level in SIMD , vector,Task level in multiprocessors , multicomputer , or a network workstationOPTIMIZATIONThe transformation of user programs in order to explore the hardware capabilities as much as possibleTransformation can be conducted at the loop level , locality level , or prefetching level The ultimate goal of PO is to maximize the speed of code executionIt involves minimization of code length and of memory accesses and the exploitation Sometimes should be conducted at the algorithmic level and must involves the programmerCODE GENERATIONCode generation usually involves transformation from one representation to another ,called an intermediate formEven more demanding because parallel constructs must be includedCode generation closely tied to instruction scheduling policies usedOptimized to encourage a high degree of parallelismParallel code generation is very different fo different computer classes they are software and hardware scheudledCompilation phases in parallel code generation THANK S