📄 ppvisual_total.diff
字号:
diff -rbBd --minimal -U 3 matlabpv2_org/PPMake.inc matlabpv2/PPMake.inc--- matlabpv2_org/PPMake.inc Tue May 7 20:24:54 2002+++ matlabpv2/PPMake.inc Mon May 6 16:29:24 2002@@ -1,17 +1,17 @@ CC=mpiCC CCC=g++ -STATICLINKPACKAGES=-DPPBASE -DPPPBLAS -DPPSCALAPACK -DPPFFTW+STATICLINKPACKAGES=-DPPBASE -DPPPBLAS -DPPSCALAPACK -DPPFFTW -DPPVISUAL #STATICLINKPACKAGES= -CFLAG=-DGCC -DPPSTATIC -DSPRNG -DSCALAPACKUNDERSCORE -DBLACSUNDERSCORE -DPBLASUNDERSCORE $(STATICLINKPACKAGES) -static+CFLAG=-DGCC -DPPSTATIC -DSPRNG -DSCALAPACKUNDERSCORE -DBLACSUNDERSCORE -DPBLASUNDERSCORE $(STATICLINKPACKAGES) -static -lGL -lGLU -lOSMesa #-DDEBUG # xlC SHARED=-bM:SRE -bnoentry INCLUDE=-I../include -I../server $(SCALAPACKINC) $(SPRNGINC) $(FFTWINC) -LIBS=$(SCALAPACK) $(TOOLS) $(REDIST) $(PBLAS) $(SPRNG) $(LAPACK) $(FFTW) $(BLAS) $(BLACS) $(MPI) -lm -lg2c+LIBS=$(SCALAPACK) $(TOOLS) $(REDIST) $(PBLAS) $(SPRNG) $(LAPACK) $(FFTW) $(BLAS) $(BLACS) $(MPI) -lm -lg2c -lGL -lGLU -lOSMesa BLAS=-lf77blas -latlas @@ -42,4 +42,4 @@ PROXYOBJS=$(COMMONOBJS) PPProxy.o PACKAGES=../packages/PPBase.o ../packages/PPPBlas.o ../packages/PPFFTW.o \- ../packages/PPScalapack.o+ ../packages/PPScalapack.o ../packages/PPVisual.o ../packages/tdrender.o ../packages/surfrender.o ../packages/meshrender.o ../packages/spyrender.o ../packages/render.odiff -rbBd --minimal -U 3 matlabpv2_org/include/MatrixManager.h matlabpv2/include/MatrixManager.h--- matlabpv2_org/include/MatrixManager.h Tue May 7 20:24:54 2002+++ matlabpv2/include/MatrixManager.h Sat May 4 04:17:41 2002@@ -18,6 +18,10 @@ typedef MatrixMap::const_iterator MatrixMapCI; typedef MatrixMap::iterator MatrixMapI; +typedef struct {+ int blocks, lCols, lRows;+ int *block_data;+} DistLayout; class MatrixManager { @@ -63,7 +67,11 @@ void printLocal(PPMatrixID id, ostream &outstream); int *getDesc(PPMatrixID id); int getSqtxt() { return sqtxt; }-+ /* + int getStartCol(PPMatrixID in, int nprocs);+ int getStartRow(PPMatrixID in, int nprocs);+ */ + DistLayout * getDistWindows(PPMatrixID in, int nprocs, int rank); PPMatrixID * getMatrixList(); int getMatrixCount(); diff -rbBd --minimal -U 3 matlabpv2_org/include/PPInit.h matlabpv2/include/PPInit.h--- matlabpv2_org/include/PPInit.h Tue May 7 20:24:54 2002+++ matlabpv2/include/PPInit.h Thu Apr 18 19:01:41 2002@@ -7,6 +7,7 @@ PPError PPPBlas_initialize(PPPackage *, PPLogger *); PPError PPFFTW_initialize(PPPackage *, PPLogger *); PPError PPScalapack_initialize(PPPackage *, PPLogger *);+ PPError PPVisual_initialize(PPPackage *, PPLogger *); }diff -rbBd --minimal -U 3 matlabpv2_org/matlab/@operator/pcg2.m matlabpv2/matlab/@operator/pcg2.m--- matlabpv2_org/matlab/@operator/pcg2.m Tue May 7 20:24:56 2002+++ matlabpv2/matlab/@operator/pcg2.m Thu Apr 18 19:01:41 2002@@ -101,7 +101,7 @@ % Penny Anderson, 1996. % Copyright (c) 1984-98 by The MathWorks, Inc.-% $Revision: 1.1.1.1 $ $Date: 2002/03/06 03:08:57 $+% $Revision: 1.1.1.1 $ $Date: 2002/04/18 19:01:41 $ if (nargin < 2) error('Not enough input arguments.');Only in matlabpv2/matlab: about.figOnly in matlabpv2/matlab: about.mOnly in matlabpv2/matlab: aboutspy1surf1.figOnly in matlabpv2/matlab: aboutspy1surf1.mOnly in matlabpv2/matlab: ppclient.mexglxBinary files matlabpv2_org/matlab/ppclient.mexsg64 and matlabpv2/matlab/ppclient.mexsg64 differOnly in matlabpv2/matlab: ppmesh.figOnly in matlabpv2/matlab: ppmesh.mOnly in matlabpv2/matlab: ppproxyOnly in matlabpv2/matlab: ppspy.figOnly in matlabpv2/matlab: ppspy.mOnly in matlabpv2/matlab: ppspy_test.mOnly in matlabpv2/matlab: ppsurf.figOnly in matlabpv2/matlab: ppsurf.mOnly in matlabpv2/matlab: ppsurf.m~Only in matlabpv2/matlab: ppsurf_test.mOnly in matlabpv2/matlab: sTestdiff -rbBd --minimal -U 3 matlabpv2_org/packages/Makefile matlabpv2/packages/Makefile--- matlabpv2_org/packages/Makefile Tue May 7 20:24:56 2002+++ matlabpv2/packages/Makefile Mon May 6 16:29:28 2002@@ -23,14 +23,15 @@ PPPBLASOBJS=$(COMMONOBJS) PPPBlas.o PPFFTWOBJS=$(COMMONOBJS) PPFFTW.o PPSCALAPACKOBJS=$(COMMONOBJS) PPScalapack.o+PPVISUAL=$(COMMONOBJS) PPVisual.o tdrender.o surfrender.o meshrender.o spyrender.o render.o --all: ppbase_s pppblas_s ppfftw_s ppscalapack_s+all: ppbase_s pppblas_s ppfftw_s ppscalapack_s ppvisual_s pppblas_s: $(PPPBLASOBJS) ppbase_s: $(PPBASEOBJS) ppfftw_s: $(PPFFTWOBJS) ppscalapack_s: $(PPSCALAPACKOBJS)+ppvisual_s: $(PPVISUAL) ppbase: $(PPBASEOBJS) $(CCC) $(INCLUDE) $(SHARED) -G -bE:PPBase.exp -o PPBase.so $(PPBASEOBJS) $(LIBS)Only in matlabpv2/packages: PPVisual.ccOnly in matlabpv2/packages: meshrender.ccOnly in matlabpv2/packages: meshrender.hOnly in matlabpv2/packages: render.ccOnly in matlabpv2/packages: render.hOnly in matlabpv2/packages: spyrender.ccOnly in matlabpv2/packages: spyrender.hOnly in matlabpv2/packages: surfrender.ccOnly in matlabpv2/packages: surfrender.hOnly in matlabpv2/packages: tdrender.ccOnly in matlabpv2/packages: tdrender.hOnly in matlabpv2/packages: textures.hdiff -rbBd --minimal -U 3 matlabpv2_org/server/MatrixManager.cc matlabpv2/server/MatrixManager.cc--- matlabpv2_org/server/MatrixManager.cc Tue May 7 20:24:57 2002+++ matlabpv2/server/MatrixManager.cc Tue May 7 20:31:18 2002@@ -750,7 +750,195 @@ m1->set(m,n,val); } +/* unknown return type */+DistLayout *+MatrixManager::getDistWindows(PPMatrixID in, int nprocs, int rank) +{+ int context, nprow, npcol, myrow, mycol, blocks;+ int MB, NB, gRows, gCols, lRows, lCols;+ int cOffset, rOffset;+ DistLayout *block_layout;+ PPMatrix *m1;+ PPDistType dist;+ + if (!isValidMatrix(in)) { + cerr << "Error in MatrixManager::getDistWindows: invalid PPMatrixID " + << in << endl; cerr.flush();+ return NULL;+ }+ + MB = getMB(in);+ NB = getNB(in);+ gRows = getGRows(in);+ gCols = getGCols(in);+ lRows = getLRows(in);+ lCols = getLCols(in);+ m1 = (mat.find(in))->second;+ dist = m1->getDist();+ block_layout = new DistLayout; /* we won't destroy this here. Watch this! */+ block_layout->lCols = lCols;+ block_layout->lRows = lRows;+ /* set the context so that the BLACS routines will give us useful info */+ switch(dist) {+ case CYCLIC: + context = sqtxt;+ break;+ case ROW: + context = rowtxt;+ break;+ case COL: + context = coltxt; + break;+ default:+ cerr << "MatrixManager::getDistWindows - invalid dist type" + << endl; cerr.flush();+ return NULL;+ }+ + BLACS_GRIDINFO(context, nprow, npcol, myrow, mycol);+ + /* blocks is the maximum number of blocks on the processor.+ We will use the ceilings of the below ratios to account for+ the slack picked up by some processors for non-ideally-sized+ matricies. We will use blocks to initialize some data structures.+ */+ blocks = + (int)ceil((double)gRows/(nprow*MB))*(int)ceil((double)gCols/(npcol*NB));+ //cout<<"("<<rank<<") :::::: Max blocks on this proc: "<<blocks<<endl; + block_layout->blocks = blocks;+ block_layout->block_data = new int[blocks*6];+ /* + block_data :+ block_data[block#*6+0] = upper left row+ block_data[block#*6+1] = upper left col+ block_data[block#*6+2] = lower right row+ block_data[block#*6+3] = lower right col+ block_data[block#*6+4] = row offset into raw+ block_data[block#*6+5] = column offset into raw + if all of the entries are zeros, then that block has no data in it.+ */+ switch(dist) {+ case CYCLIC: + int I,J,l,m,erow,ecol, k;+ l = 0;+ m = 0;+ k = 0;+ rOffset = 0;+ cOffset = 0;+ while((I = (l*nprow+myrow)*MB) < gRows)+ {+ m = 0;+ l ++;+ cOffset = 0;+ while((J = (m*npcol+mycol)*NB) < gCols)+ {+ m++;+ erow = I+MB-1;+ ecol = J+NB-1;+ if(erow >= gRows)+ erow = gRows - 1;+ if(ecol >= gCols)+ ecol = gCols - 1;+ assert(k<blocks); + block_layout->block_data[6*k+0] = I;+ block_layout->block_data[6*k+1] = J;+ block_layout->block_data[6*k+2] = erow;+ block_layout->block_data[6*k+3] = ecol;+ block_layout->block_data[6*k+4] = rOffset;+ block_layout->block_data[6*k+5] = cOffset;+ k++;+ /*+ cout<<"("<<rank<<") : cyclic: from ("<<I<<", "<<J<<") to ("+ <<erow<<", "<<ecol<<"): Offset ("<<rOffset<<", "<<cOffset+ <<") into the node's raw data.\n";+ */+ cOffset = cOffset + NB;+ }+ rOffset = rOffset + MB;+ } + if( k < blocks)+ {+ /* this node doesn't have as many blocks as it could. + * Fill the last blocks w/ zeros+ */+ for(;k<blocks;k++)+ {+ block_layout->block_data[6*k+0] = 0;+ block_layout->block_data[6*k+1] = 0;+ block_layout->block_data[6*k+2] = 0;+ block_layout->block_data[6*k+3] = 0;+ block_layout->block_data[6*k+4] = 0;+ block_layout->block_data[6*k+5] = 0;+ }+ } + break;+ case ROW: + assert(blocks = 1);+ myrow = MB*myrow;+ if(myrow >= gRows)+ myrow = -1; /* shouldn't be */+ mycol = 0;+ if(myrow == -1)+ {+ block_layout->block_data[0] = 0;+ block_layout->block_data[1] = 0;+ block_layout->block_data[2] = 0;+ block_layout->block_data[3] = 0;+ block_layout->block_data[4] = 0;+ block_layout->block_data[5] = 0;+ }+ else+ {+ block_layout->block_data[0] = myrow;+ block_layout->block_data[1] = mycol;+ block_layout->block_data[2] = myrow+lRows-1;+ block_layout->block_data[3] = mycol+lCols-1;+ assert(myrow*NB < gCols*gRows);+ block_layout->block_data[4] = myrow*NB;+ block_layout->block_data[5] = 0;+ }+ /*+ cout<<"from ("<<myrow<<", "<<mycol<<") to ("+ <<myrow+lRows-1<<", "<<mycol+lCols-1<<")\n";+ */ + break;+ case COL: + mycol = NB*mycol;+ if(mycol >= gCols)+ mycol = -1; /* shouldn't be */+ myrow = 0;+ /*+ cout<<"from ("<<myrow<<", "<<mycol<<") to ("+ <<myrow+lRows-1<<", "<<mycol+lCols-1<<")\n";+ */+ if(mycol == -1)+ {+ block_layout->block_data[0] = 0;+ block_layout->block_data[1] = 0;+ block_layout->block_data[2] = 0;+ block_layout->block_data[3] = 0;+ block_layout->block_data[4] = 0;+ block_layout->block_data[5] = 0;+ }+ else+ {+ block_layout->block_data[0] = myrow;+ block_layout->block_data[1] = mycol;+ block_layout->block_data[2] = myrow+lRows-1;+ block_layout->block_data[3] = mycol+lCols-1;+ block_layout->block_data[4] = 0;+ assert(mycol*MB < gCols*gRows);+ block_layout->block_data[5] = mycol*MB;+ }+ break;+ default:+ cerr << "MatrixManager::getStartCol - invalid dist type" + << endl; cerr.flush();+ return NULL;+ }+ return block_layout; +}diff -rbBd --minimal -U 3 matlabpv2_org/server/PackageManager.cc matlabpv2/server/PackageManager.cc--- matlabpv2_org/server/PackageManager.cc Tue May 7 20:24:57 2002+++ matlabpv2/server/PackageManager.cc Thu Apr 18 19:01:41 2002@@ -108,6 +108,13 @@ #endif +#ifdef PPVISUAL+ PPPackage *visual = new PPPackage("PPVisual");+ PPVisual_initialize(visual,Logger);+ pmap["PPVisual"] = visual;+ * log << "PackageManager - loaded package: PPVisual " << endl;+#endif+ return 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -