beautypg.com

1 example procedure 1, Example procedure 1 – HP XC System 3.x Software User Manual

Page 107

background image

test

all:

@ \

for i in ${HYPRE_DIRS}; \

do \

if [ -d $$i ]; \

then \

echo "Making $$i ..."; \

(cd $$i; make); \

echo ""; \

fi; \

done

clean:

@ \

for i in ${HYPRE_DIRS}; \

do \

if [ -d $$i ]; \

then \

echo "Cleaning $$i ..."; \

(cd $$i; make clean); \

fi; \

done

veryclean:

@ \

for i in ${HYPRE_DIRS}; \

do \

if [ -d $$i ]; \

then \

echo "Very-cleaning $$i ..."; \

(cd $$i; make veryclean); \

fi; \

done

11.3.1 Example Procedure 1

Go through the directories serially and have the make procedure within each directory be parallel.

For the purpose of this exercise we are only parallelizing the “make all” component. The “clean” and
“veryclean” components can be parallelized in a similar fashion.

Modified Makefile:

all:

@ \

for i ${HYPRE_DIRS}; \

do \

if [ -d $$i ]; \

then \

echo "Making $$i ..."; \

echo $(PREFIX) $(MAKE) $(MAKE_J) -C $$i; \

$(PREFIX) $(MAKE) $(MAKE_J) -C $$i; \

fi; \

done

By modifying 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:

11.3 Using the GNU Parallel Make Capability

107