%%%%%%%%% Generate figures using Matlab %%%%%%%%% %% Note: DT*** are data files. They have two columns, the first column is the elapsed time (x-value), the second column is the accumulated computed time (y-value) %%%%%%%%% Fig. 10 Host %%%%%%%% %% load data from file DTsimd, assign data to variable s, xs gets the first column, ys gets the second column load DTsimd; s=DTsimd; xs=s(:,1); ys=s(:,2); %% load data from file DTunit, assign data to variable u, xu gets the first column, yu gets the second column load DTunit; u=DTunit; xu=u(:,1); yu=u(:,2); %% load data from file DTxubh, assign data to variable bh, xbh gets the first column, ybh gets the second column load DTxubh; bh=DTxubh; xbh=bh(:,1); ybh=bh(:,2); plot(xs,ys, xu,yu,'--', xbh,ybh,'-.'); %% draw 3 lines title('SIMD Simulation: Host level'); %% add title xlabel('Elapsed Time, seconds'); %% add x-label ylabel('Accumulated Computed Time, seconds'); %% add y-label text(0.038,0.041,'1'); %% label line 1 text(0.035,0.03,'2'); %% label line 2 text(0.032,0.004,'3'); %% label line 3 %% add legend legend('1: SIMD Execution','2: Unit Execution','3: Host->Unit Bus ', 2); print -djpeg dmhost.jpg; %% print to .jpg file %%%%%%%%% Fig. 11 IPV %%%%%%%% load DTibcm; bm=DTibcm; xbm=bm(:,1); ybm=bm(:,2); load DTcmau; ma=DTcmau; xma=ma(:,1); yma=ma(:,2); load DTlmio; m=DTlmio; xm=m(:,1); ym=m(:,2); load DTaluf; a=DTaluf; xa=a(:,1); ya=a(:,2); plot(xbm,ybm, xma,yma,'--', xm,ym,'-.', xa,ya,':'); title('SIMD Simulation: IPV Card level'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.000027,'1'); text(0.03,0.00002,'2'); text(0.03,0.000041,'3'); text(0.028,0.00001,'4'); legend('1: Buffer to NEWS I/O ','2: NEWS to ALU I/O','3: LM to ALU I/O','4: ALU Computation', 2); print -djpeg dmIPV.jpg; %%%%%%%%% Fig. 12 Host I/O %%%%%%%% load DTxhbui; hbi=DTxhbui; xhbi=hbi(:,1); yhbi=hbi(:,2); load DTxhbud; hbd=DTxhbud; xhbd=hbd(:,1); yhbd=hbd(:,2); plot(xhbi,yhbi, xhbd,yhbd,'--'); title('instr vs. data I/O at Host Level'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.0000038,'1'); text(0.028,0.000011,'2'); legend('1: instr. I/O ','2: data I/O', 2); print -djpeg dmHostIO.jpg; %%%%%%%%% Fig. 13 IOC I/O %%%%%%%% load DTisio; is=DTisio; xis=is(:,1); yis=is(:,2); load DThfio; hf=DThfio; xhf=hf(:,1); yhf=hf(:,2); plot(xis,yis, xhf,yhf,'--'); title('instr vs. data I/O at IOC Level'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.00018,'1'); text(0.028,0.00085,'2'); legend('1: instr. I/O ','2: data I/O', 2); print -djpeg dmIOCIO.jpg; %%%%%%%%% Fig. 14 IOC-IPV I/O %%%%%%%% load DTfbib; fb=DTfbib; xfb=fb(:,1); yfb=fb(:,2); load DTimau; ia=DTimau; xia=ia(:,1); yia=ia(:,2); plot(xia,yia, xfb,yfb,'--'); title('instr vs. data I/O from IOC to IPV'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.000055,'1'); text(0.028,0.00014,'2'); legend('1: instr. I/O ','2: data I/O', 2); print -djpeg dmIPVIO.jpg; %%%%%%%%% Fig. 15 I/O %%%%%%%% load DTxhbu; hb=DTxhbu; xhb=hb(:,1); yhb=hb(:,2); plot(xhb,yhb, xhf,yhf,'--', xfb,yfb,'-.', xbm,ybm,'.', xm,ym,':'); title('I/O across all levels'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.025,0.00002,'1'); text(0.028,0.001,'2'); text(0.028,0.00021,'3'); text(0.030,0.00004,'4'); text(0.035,0.00007,'5'); legend('1: Host Level I/O ','2: IOC Level I/O','3: IOC to IPV I/O','4: NEWS I/O','5: LM to ALU I/O', 2); print -djpeg dmallIO.jpg; %plot(xhbi,yhbi, xis,yis, xia,yia); %plot(xhbd,yhbd, xhf,yhf, xfb,yfb); %%%%%%%%% Fig. 16 Host Comp vs. I/O %%%%%%%% load DTxasc; xc=DTxasc; xxc=xc(:,1); yxc=xc(:,2); load DTxhbu; hb=DTxhbu; xhb=hb(:,1); yhb=hb(:,2); plot(xxc,yxc, xhb,yhb,'--'); title('Computation vs. I/O at Host Level'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.0000055,'1'); text(0.028,0.0000158,'2'); legend('1: Translation Time ','2: I/O', 2); print -djpeg dmHostCIO.jpg; %%%%%%%%% Fig.17 IOC Comp vs. I/O %%%%%%%% load DTxasm; xm=DTxasm; xxm=xm(:,1); yxm=xm(:,2); plot(xxm,yxm, xhf,yhf,'--'); title('Computation vs. I/O at IOC Level'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.0001,'1'); text(0.028,0.00088,'2'); legend('1: Translation Time ','2: I/O', 2); print -djpeg dmIOCCIO.jpg; %%%%%%%%% Fig. 18 IPV Comp vs. I/O %%%%%%%% load DTipvio; p=DTipvio; xp=p(:,1); yp=p(:,2); plot(xa,ya, xp,yp,'--'); title('Computation vs. I/O at IPV Level'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.028,0.000018,'1'); text(0.028,0.00009,'2'); legend('1: ALU ','2: I/O', 2); print -djpeg dmIPVCIO.jpg; %%%%%%%%% Fig. 19 ratio of I/O vs Computaional %%%%%%%% load CIOh; h=CIOh; xh=h(:,1); yh=h(:,2); load CIOu; u=CIOu; xu=u(:,1); yu=u(:,2); load CIOp; p=CIOp; xp=p(:,1); yp=p(:,2); load CIOall; al=CIOall; xal=al(:,1); yal=al(:,2); plot(xh,yh, xu,yu, xp,yp, xal,yal,'k-' ); title('Ratio of I/O cost vs. computational cost'); xlabel('Elapsed Time, seconds'); ylabel('I/O time / computational time'); text(0.0515,2,'1'); text(0.0515,17,'2'); text(0.0515,7.5,'3'); text(0.0515,13,'4'); legend('1: Host level','2: IOC level','3: IPV level','4: all levels',1); print -djpeg RIOC.jpg; %%%%%%%%% SIMD-ADD %%%%%%%% %%%%%%%%% Fig. 20 ALU %%%%%%%% load DTaluf1; a1=DTaluf1; xa1=a1(:,1); ya1=a1(:,2); load DTaluf2; a2=DTaluf2; xa2=a2(:,1); ya2=a2(:,2); load DTaluf3; a3=DTaluf3; xa3=a3(:,1); ya3=a3(:,2); load DTaluf4; a4=DTaluf4; xa4=a4(:,1); ya4=a4(:,2); plot(xa1,ya1, xa2,ya2,'--', xa3,ya3,'-.', xa4,ya4,':'); title('ALU Computation Times for different mesh sizes and different image sizes'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.00115,0.000000018,'1'); text(0.00147,0.000000023,'2'); text(0.0019,0.000000028,'3'); text(0.00215,0.000000018,'4'); legend('1: mesh:64*64, image:64*64','2: mesh:64*64, image:80*80','3: mesh:64*64, image:100*100','4: mesh:100*100, image:100*100',2); print -djpeg addalu.jpg; %%%%%%%%% Fig. 21 ASM Translation %%%%%%%% load DTxasm1; xm1=DTxasm1; xxm1=xm1(:,1); yxm1=xm1(:,2); load DTxasm2; xm2=DTxasm2; xxm2=xm2(:,1); yxm2=xm2(:,2); load DTxasm3; xm3=DTxasm3; xxm3=xm3(:,1); yxm3=xm3(:,2); load DTxasm4; xm4=DTxasm4; xxm4=xm4(:,1); yxm4=xm4(:,2); plot(xxm1,yxm1, xxm2,yxm2,'--', xxm3,yxm3,'-.', xxm4,yxm4,':'); title('ASM Translation Times for different mesh sizes and different image sizes'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.0011,0.00000014,'1'); text(0.00145,0.00000016,'2'); text(0.00185,0.00000018,'3'); text(0.0021,0.00000014,'4'); legend('1: mesh:64*64, image:64*64','2: mesh:64*64, image:80*80','3: mesh:64*64, image:100*100','4: mesh:100*100, image:100*100',4); print -djpeg addasm.jpg; %%%%%%%%% I/O %%%%%%%% load DTimau1; ia1=DTimau1; xia1=ia1(:,1); yia1=ia1(:,2); load DTimau2; ia2=DTimau2; xia2=ia2(:,1); yia2=ia2(:,2); load DTimau3; ia3=DTimau3; xia3=ia3(:,1); yia3=ia3(:,2); load DTimau4; ia4=DTimau4; xia4=ia4(:,1); yia4=ia4(:,2); load DTfbib1; df1=DTfbib1; xdf1=df1(:,1); ydf1=df1(:,2); load DTfbib2; df2=DTfbib2; xdf2=df2(:,1); ydf2=df2(:,2); load DTfbib3; df3=DTfbib3; xdf3=df3(:,1); ydf3=df3(:,2); load DTfbib4; df4=DTfbib4; xdf4=df4(:,1); ydf4=df4(:,2); %%%%%%%%% Fig. 22 %%%%%%%% plot(xia1,yia1, xdf1,ydf1,'--', xia3,yia3, xdf3,ydf3,'--'); title('Data I/O vs. instr. I/O for different image sizes'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.0011,0.00000008,'1'); text(0.00115,0.00000038,'2'); text(0.0016,0.0000001,'3'); text(0.0017,0.00000048,'4'); legend('1: instr. I/O for image:64*64','2: data I/O for image:64*64','3: instr. I/O for image:100*100','4: data I/O for image:100*100',2); print -djpeg addIOi.jpg; %%%%%%%%% Fig. 23 %%%%%%%% plot(xia3,yia3, xdf3,ydf3,'--', xia4,yia4, xdf4,ydf4,'--'); title('Data I/O vs. instr. I/O for different mesh sizes'); xlabel('Elapsed Time, seconds'); ylabel('Accumulated Computed Time, seconds'); text(0.0016,0.0000001,'1'); text(0.0019,0.00000058,'2'); text(0.0021,0.00000008,'3'); text(0.00215,0.00000038,'4'); legend('1: instr. I/O on mesh:64*64','2: data I/O on mesh:64*64','3: instr. I/O on mesh:100*100','4: data I/O on mesh:100*100',2); print -djpeg addIOm.jpg;