The Inside Story behind Interactive Supercomputing's Star-P Platform for High Performance Computing for MATLAB(r) CompanyClient/Server Parallel Computing The Client (a math lab) is the browserStar-P Functional OverviewFamiliar Desktop ToolsStar-P ClientStar-P Interactive EngineStar-P Computation EngineData-Parallel ComputationsSlide 10ppeval syntax (parallel function)Task-Parallel ComputationsStar-P OpenConnect Library API LinkStar-P OpenConnect Library APIHardware AcceleratorsDevelopment UtilitiesHigh-speed I/OClassroom HomeworkClassroom ExperimentSlide 20Productivity Study – Kepner diagramThe silly (worse than embarassing) pi example (followed by the good one)Wigner’s semicircle Law with four clientsMATLABMathematicaPythonR ClientSlide 28The Inside Story behind Interactive Supercomputing's Star-P Platform for High Performance Computing for MATLAB(r) Alan EdelmanMassachusetts Institute of TechnologyProfessor of Applied MathematicsComputer Science and AI LaboratoriesInteractive SupercomputingChief Science Officer2Company•Background:–Started in 1995, Founded in 2004–Parallel Computing Harder than most realize–Technology: Star-P software platform supporting automatic parallelization and interactive execution of desktop technical applications on parallel servers–Platform: Clients: MATLAB, MATHEMATICA, PYTHON–Platform: Engines, your code, etc.•Value:–Modern Client/Server Parallel Computation–OPEN PLATFORM–Can plug in existing parallel and serial software seamlessly–Years of experience3Client/Server Parallel ComputingThe Client (a math lab) is the browserSlide contains trademarks owned by private corporations. Use of logos or registered trademarks does not imply endorsementWeb vs traditional•Bank/financial•Email•Travel•Photos•MIT Grades•Your Parallel Computing!4Star-P Functional Overview5Familiar Desktop Tools6Star-P Client•Connects to server•Redirects library calls•Optimizes serial code7Star-P Interactive Engine•Server resource management•User & session management•Workload management8Star-P Computation Engine1. Data-Parallel Computations2. Task-Parallel Computations 3. OpenConnect Library API Link9Data-Parallel Computations•Global array syntax•Operations on large distributed data sets•World-class parallel libraries1011ppeval syntax (parallel function)Answer does not depend on distribution: Parallel computers need shapes to enter from all sides.•a=rand(500,500,200*p);•[u,s,v]=ppeval(‘svd’,a); % default svd on z-dim•a=rand(500,500*p,200);•[u,s,v]=ppeval(‘svd’,a); % default svd on z-dim anywayP1P2P3P4P1 P2 P3 P412Task-Parallel Computations•Multiple independent calculations•Simple, intuitive w/Star-P’s abstraction•Plug in popular computation engines13Star-P OpenConnect Library API Link•Leverage data- and task-parallel libraries, solvers•Commercial and open source•Enable access through desktop VHLLs14Star-P OpenConnect Library API•Leverage data- and task-parallel libraries, solvers•Commercial and open source•Enable access through desktop VHLLs15Hardware Accelerators•Embed compute-intensive algorithms•FPGAs, GPUs, etc.•Library functions, called from desktop apps16Development Utilities•Debugging, profiling, monitoring•Built in, and interfaces to popular tools•Interactively explore and optimize code17High-speed I/O•Native parallel I/O•Direct transfer between disk and server CPUs•Eliminate client/server data transfer•No need to manually break up files18Classroom Homework•The Buffon Needle Problemfunction z=Buffon(a,b,l, trials)r=rand(trials,3);x=a*r(:,1)+l*cos(2*pi*r(:,3)); y=b*r(:,2)+l*sin(2*pi*r(:,3)); inside = (x >= 0) & (y>=0) & (x <= a) & (y <= b);buffonpi=(2*l*(a+b) - l^2)/ (a*b*(1-sum(inside)/trials));abBuffon(1,1,1.5,1000*p)19Classroom Experiment•A data collector’s dream: –29 students, each code run in MPI and three versions of Star-P. Some students more skilled with MPI than others.20Classroom Experiment•A data collector’s dream: –29 students, each code run in MPI and three versions of Star-P. Some students more skilled with MPI than others.Mean mpi TimeStar-P 2.1 (March 2006) Star-P 2.3 (May 2006) Star-P internal21Productivity Study – Kepner diagramStar-P 2.1Star-P 2.3Star-P internalMPI TypicalMPI BestDevelopment TimePerformancesmall largebadbest22The silly (worse than embarassing) pi example(followed by the good one)Abstraction: Independent of number of processors or processes!Abstraction: Parameters automatically moved to server!>> n=8; k=1:n; >> sum(ppeval('quad','4./(1+x.^2)', (k-1)/n, k/n)) Parallel Evaluate Pieces of pi: ∫4/(1+x2) dx on [0,1/8],[1/8,2/8],...,[7/8,1] and sum. ans = 3.14159265358979function thedigits = pidigits(d)sum1 =0; sum2 = zeros(4);A = eye(d+1,d+1); B = zeros(d+1,1);n = 1;g = [1,4,5,6];for m = g if (m == 1),A(1) =0; end for j = 0:d B(j+1,1) = 8*j+m; for i = j+1:d A(i+1,j+1) = mod(A(i, j+1)*16, 8*j+m); end A(1:d +1, j+1) = A(1:d +1, j+1)/B(j+1,1); end for i = 1:d+1, f(i,n) = sum(A(i,:)); end n = n+1; u = f-floor(f);A = eye(d+1,d+1);end for e = 0:d for k = d+1:d+20 b= 16^(d-k)./(8*k+[1 4 5 6]); sum1 = sum1 + (b-floor(b)); end sum2(e+1,1:4) = sum1;end q = u + sum2; soln = 4*q(:,1)-2*q(:,2)-q(:,3)-q(:,4);thedigits = floor(16*(soln - floor(soln)));Compute millions of hexadecimal digits of pi!23Wigner’s semicircle Law with four clientsTake Random Symmetric Matrix and histogram the eigenvaluesFamous Noble Prize Winning Physicist Computed histogram = semicircle24MATLAB25Mathematica26Python27R Client28Star-P Functional
View Full Document