By m odify ing the makefile to reflect the changes illustrated above, we will now be processing
each directory serially and parallelize the individual makes within each directory. The modified
Makefile is invoked as follows:
$ make PREFIX=’srun –n1 –N1 MAKE_J=’-j4’
3.9.1.2 Example Procedure 2
Go through the directories in parallelandhavethemakeprocedurewithin
each directory be
serial.
For the purpose of this exercise we are only parallelizing t he “make all” component. The
“clean” and “veryclean” components can be parallelized in a simi lar fashion.
Modified ma kefile:
all:
$(MAKE) $(MAKE_J) struct_matrix_vector/libHYPRE_mv.a
struct_linear_solvers/libHYPRE_ls.a utilities/libHYPRE_utilities.a
$(PREFIX) $(MAKE) -C test
struct_matrix_vector/libHYPRE_mv.a:
$(PREFIX) $(MAKE) -C struct_matrix_vector
struct_linear_solvers/libHYPRE_ls.a:
$(PREFIX) $(MAKE) -C struct_linear_solvers
utilities/libHYPRE_utilities.a:
$(PREFIX) $(MAKE) -C utilities
The modified Makefile is invoked as follow s :
$ make PREFIX=’srun -n1 -N1’ MAKE_J=’-j4’
3.9.1.3 Example Procedure 3
Go through the directories in parallel and have the make procedure within each directory be
parallel. For the purpose of this exercise, we are only parallelizing the “mak e all” component.
The “clean” and “veryclean” components can be parallelized in a similar fashion.
Modified ma kefile:
all:
$(MAKE) $(MAKE_J) struct_matrix_vector/libHYPRE_mv.a
struct_linear_solvers/libHYPRE_ls.a utilities/libHYPRE_utilities.a
$(PREFIX) $(MAKE) $(MAKE_J) -C test
struct_matrix_vector/libHYPRE_mv.a:
$(PREFIX) $(MAKE) $(MAKE_J) -C struct_matrix_vector
struct_linear_solvers/libHYPRE_ls.a:
$(PREFIX) $(MAKE) $(MAKE_J) -C struct_linear_solvers
Developing Applications 3-13
Commentaires sur ces manuels