We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Implementing Parallel Programming Design Patterns using EFL for Python

00:00

Formal Metadata

Title
Implementing Parallel Programming Design Patterns using EFL for Python
Title of Series
Part Number
119
Number of Parts
169
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Moshe Goldstein/david dayan - Implementing Parallel Programming Design Patterns using EFL for Python EFL (Embedded Flexible Language), a deterministic parallel programming tool, may be embedded in any host language. Two versions of the EFL pre-compiler for Python were implemented. One translates EFL blocks into Python's Multiprocessing code, and the other one into DTM/MPI4PY code. EFL implementations of Parallel Programming Design Patterns will be shown, generated parallel code compared, and differences discussed. ----- Multi-core CPUs are abundant and utilizing them effectively requires programmers to parallelize CPU-intensive code. To facilitate this, we have developed EFL (Embedded Flexible Language), a deterministic parallel programming tool. The parallel parts of a program are written as EFL-blocks, which are embedded into a sequential host language program. The sequential parts of the program are written in the host language, outside the EFL blocks. EFL may be embedded in any host language by writing an appropriate EFL pre-compiler. At the moment, we implemented two versions of the EFL pre-compiler. Both pre-compilers translate EFL blocks into parallel Python code - one of them generates parallel code based on Python's Multiprocessing module, and the other one generates parallel code based on the DTM/MPI4PY Python module. We will present the principles upon which EFL is built. We will show the implementation of Parallel Programming Design Patterns using EFL's parallel programming constructs (such as parallel assignments, parallel for-loops, etc.). Using our two EFL pre-compilers we will show their translation to Python parallel code according to the Multiprocessing module as well as the DTM/MPI4PY module. The differences between code versions produced by the EFL pre-compilers will be discussed.
Computer programmingProgramming languageData modelMachine codeSequenceComputer programMereologyModulare ProgrammierungRing (mathematics)DeterminismFunctional programmingMemory managementParallel computingBlock (periodic table)Programmer (hardware)Object-oriented programmingBlock (periodic table)Focus (optics)ImplementationNeuroinformatikDifferent (Kate Ryan album)MereologySound effectSemantics (computer science)Computer programmingSystem callSoftware design patternPresentation of a groupResultantProgramming languageParallel computingPower (physics)Software developerComputing platformBarrelled spaceThread (computing)Modulare ProgrammierungMemory managementSlide ruleStudent's t-testDigital photographySystem programmingDeterminismMachine codeEscape characterFreewareUniverse (mathematics)GenderProgramming paradigmProjective planeSubject indexingFunctional programmingEndliche ModelltheorieInterface (computing)Computer animation
Data modelParallel computingFunction (mathematics)Programmer (hardware)Block (periodic table)Variable (mathematics)Computer programmingAsynchronous Transfer ModeOrder (biology)SequenceComputer programCommutative propertyImplementationCompilerPressureView (database)Default (computer science)NumberScheduling (computing)Mechanism designObject-oriented programmingModulare ProgrammierungLevel (video gaming)Stochastic processComputerDemonHierarchyData managementRevision controlTask (computing)MereologyAlgorithmAbstractionSimilarity (geometry)Machine codeProgramming languageStochastic processLine (geometry)Revision controlSemantics (computer science)Functional programmingAlgorithmParallel computingDefault (computer science)Block (periodic table)HierarchyLatent heatSequenceComputing platformEndliche ModelltheorieCompilerOrder (biology)Level (video gaming)NumberModulare ProgrammierungResultantSlide ruleComputer programmingObject-oriented programmingMehrprozessorsystemSource codeProgrammer (hardware)ImplementationVariable (mathematics)Run time (program lifecycle phase)Mechanism designScheduling (computing)Data managementView (database)Java appletCharacteristic polynomialNeuroinformatikProgramming paradigmElement (mathematics)DeterminismCore dumpPreprocessorVideo gameRhombusService (economics)Sound effectIdentity managementArithmetic meanSimilarity (geometry)InformationLength1 (number)Workstation <Musikinstrument>Rule of inferenceDifferent (Kate Ryan album)Term (mathematics)MereologySystem callAbstractionComputer animation
Pattern languageDigital filterBlock (periodic table)Level (video gaming)Loop (music)Parallel computingConstructor (object-oriented programming)Reduction of orderLogarithmKontrollflussSequenceTask (computing)Inheritance (object-oriented programming)Order (biology)Function (mathematics)System callVariable (mathematics)Regulärer Ausdruck <Textverarbeitung>Machine codeBoolean algebraDivision (mathematics)Exception handlingModulare ProgrammierungScheduling (computing)Hand fanLattice (order)BefehlsprozessorSystem programmingStructured programmingRecursionImplementationInstance (computer science)IterationStrutLevel (video gaming)Process (computing)Functional programmingSystem programmingBoolean algebraTask (computing)SequenceNumberMehrprozessorsystemDifferent (Kate Ryan album)ImplementationParallel computingMultiplication signBlogRule of inferenceExpressionStochastic processPattern languageCASE <Informatik>Computer clusteroutputComputer programmingModulare ProgrammierungEndliche ModelltheorieVotingTheoryMechanism designScheduling (computing)Group actionLengthProduct (business)Programming languageGreatest elementChemical polarityComputer configurationElement (mathematics)Function (mathematics)Logical constantMereologySubject indexingDivisorDefault (computer science)ResultantException handlingRegular graphVariable (mathematics)ForestProgrammer (hardware)Instance (computer science)Exterior algebraSoftware design patternForm (programming)Data managementField (computer science)DataflowMathematical analysisNeuroinformatikMoment (mathematics)Forcing (mathematics)Right angleLoop (music)Core dumpGame controllerConstructor (object-oriented programming)Inheritance (object-oriented programming)System callBlock (periodic table)Analytic continuationComputer animation
MathematicsPattern languageLevel (video gaming)NumberElectronic mailing listMehrprozessorsystemMachine codeBlock (periodic table)Special unitary groupAnalytic continuationLoop (music)Digital filterParallel computingConstructor (object-oriented programming)Function (mathematics)LogarithmSequenceLoginRing (mathematics)RoundingLetterpress printingInterior (topology)Lattice (order)ClefStrutoutputFunctional programmingSpring (hydrology)Element (mathematics)SequenceLevel (video gaming)ResultantAlgorithmoutputTask (computing)System callData managementFocus (optics)Instance (computer science)PreprocessorSocial classCodierung <Programmierung>Complex (psychology)Stochastic processVideo gameElectronic mailing listComputer programmingImage warpingConstraint (mathematics)NumberMereologyAverageIntegerSquare numberRight angleInverse elementMachine codeWave packetGreatest elementFunction (mathematics)Slide ruleEscape characterAssociative propertyRootObject-oriented programmingBlock (periodic table)Translation (relic)Parameter (computer programming)Metropolitan area networkBoolean functionReduction of orderPattern languageInterior (topology)MehrprozessorsystemModulare ProgrammierungLoginLoop (music)Programmer (hardware)Queue (abstract data type)String (computer science)Binary multiplierComputer animation
Parallel computingBlock (periodic table)Regulärer Ausdruck <Textverarbeitung>Machine codeBoolean algebraCondition numberVariable (mathematics)Conditional probabilityPattern languageMoving averageMatrix (mathematics)Letterpress printingVector processorLengthLoop (music)Row (database)ScalabilityBefehlsprozessorCompilerSoftware frameworkData structureImplementationFunctional programmingCompilation albumPredictionProteinComputer programAlgorithmRevision controlComputer programmingComputing platformCompilerFederation of Bosnia and HerzegovinaLocal GroupFunctional programmingElement (mathematics)CASE <Informatik>PreprocessorVector processorGene clusterBlock (periodic table)Universe (mathematics)Row (database)Limit (category theory)Pattern languageResultantStudent's t-testParalleler AlgorithmusData structureBoolean functionSound effectProjective planeBlogInstance (computer science)InternetworkingElectronic mailing listSoftware frameworkFunction (mathematics)Product (business)Parallel computingSparse matrixStructured programmingDifferent (Kate Ryan album)Compact spaceWater vaporProgramming languageWebsiteLaptopStochastic processComputing platformRule of inferenceLevel (video gaming)ProteinSoftware design patternTranslation (relic)TelecommunicationAlgorithmAreaBit rateSemiconductor memoryMereologyComputer programmingRevision controlLinear regressionExpressionField (computer science)Link (knot theory)Variable (mathematics)Task (computing)Loop (music)Software testingMatrix (mathematics)SoftwareDatabase transactionBoolean algebraScalability2 (number)Kernel (computing)Faculty (division)Software development kitSoftware developerForm (programming)ImplementationComputer animation
Gene clusterAssembly languageSystem programmingHigh-level programming languageModulare ProgrammierungProgramming languageMereologyProgrammer (hardware)QuicksortNeuroinformatikBell and HowellMoore's lawParallel computingOperating systemMachine codeRevision controlComputer programmingUniverse (mathematics)Computing platformDampingMultiplication signHardware description languageObservational studyEndliche ModelltheorieOpticsSound effectFamilyCompilerFocus (optics)CollaborationismUniformer RaumLevel (video gaming)Shared memoryOvalComputer programLatent heatLecture/Conference
Transcript: English(auto-generated)