90 likes | 272 Views
Performance: Parallel Each. David Liebtag. Title slide. What is performance?. How many calculations are performed? How much storage is used? How much data is read and written? How much data is processed? How fast an application runs? How accurate are the application’s answers?.
E N D
Performance: Parallel Each David Liebtag Title slide
What is performance? How many calculations are performed? How much storage is used? How much data is read and written? How much data is processed? How fast an application runs? How accurate are the application’s answers? Basic text slide
How does hardware affect performance? Operation and clock speed Cache size Memory size Virtual paging Number of processors Number of machines Basic text slide
What affects distributed computing performance? Detecting opportunities to distribute processing Slicing the data Copying the data to the processors Number of processors Copying the results Minimizing the number of times operations are distributed Basic text slide
What affects interpreter performance? Scalar operations →BIN/LABEL Array primitives Z←A×B Multiple primitive loops Z←A×B×C Array operators Z←FOO¨A Basic text slide
Parallel Each PEACHP - Parallel Each using processors PEACHT - Parallel Each using threads Parallel each operators start multiple APL2 interpreters Functions applied in separate workspaces with no side-effects Basic text slide
Parallel Each Syntax result ← [larg] (function PEACHP (options [processors])) rarg result ← [larg] (function PEACHT options) rarg function Character vector, name of external function options Vector of character vectors, APL2 invocation options processors Integer vector, processor identifiers, default based on CPUCOUNT larg and rarg Each arguments Basic text slide
Let’s try some things,,, Basic text slide
Room for Improvement Avoid copying data Use multiple threads for primitive array operations Coalesce loops – idiom recognition Rank operator Basic text slide