huntting@boulder.colorado.edu (Brad Huntting) (05/05/90)
Has anyone thought of altering the 'make' to support parallel compilation, using NCS? It's been done for other platforms. The following is from the Dynix (seqent's) man page for make. PARALLEL SUPPORT Make includes a parallel processing ability. If the string separating a target from its prerequisites is `:&' or `::&', make can run the command sequences to make the prerequisites simultaneously. If two names are separated by an ampersand on the right side of a colon, those two may be created in parallel. It would seem that this idea is a perfect match for NCS. (Except perhaps in the eyes of s/w sales people [personal opinions deleted]). Run make from any workstation, and compilations would be done on available authorized nodes. My understanding is that location brokers could direct compilations to not run on workstations which were in use. (Please correct me if I'm mistaken) #include "standard_disclaimer.h" /* not that it's needed... */ ---------------------------------------------------------------------- brad huntting@sel.bldrdoc.gov huntting@boulder.colorado.edu
hedman@cernvax.UUCP (fredrik hedman) (05/05/90)
In article <20680@boulder.Colorado.EDU> huntting@boulder.colorado.edu (Brad Huntting) writes: >Has anyone thought of altering the 'make' to support parallel >compilation, using NCS? It's been done for other platforms. I have just compiled version 3.58 of the GNU make program on an apollo. This version of 'make', which by the way has the best documentation of the 'make' tool I have ever read, supports 1) a '-j' option. If you do make -j 5 5 parallell compilations will be launched when make starts up. So if you have a product which contain 10 files, it will launch 5 compilations immediately and then do the rest of the files one after the other. '-j' is short for job slots. 2) there also seems to be support for some kind of networking facility. In the Makefile of 'make' one can read: # If there are remote execution facilities defined, # enable them with switches here (see remote-*.c). REMOTE = So if you combine 1) and 2) above I suppose you get just what you are looking for. I have not yet figured out how to use 2) above, anyone else ? Fredrik Hedman Division SL CERN Geneva Switzerland
lisch@lisch.mentor.com (Ray Lischner) (05/08/90)
In article <1828@cernvax.UUCP> hedman@cernvax.UUCP (fredrik hedman) writes: >I have just compiled version 3.58 of the GNU make program on an apollo. >This version of 'make', which by the way has the best documentation of >the 'make' tool I have ever read, supports ... >I have not yet figured out how to use 2) above, anyone else ? I am trying to implement remote makes for Apollos. A good solution is to run a make server on each node, and a local make could communicate with the servers to decide where to run a program. In our environment, however, this does not work because I cannot run a server process on other people's nodes. Instead, the user supplies a list of nodes. Make examines the load averages on the nodes until it finds a suitable one, then it runs the program there. The problem is that there does not seem to be a clean way to export the environment variables to the remote make. Until I can overcome this problem, my remote make implementation is worthless. I am interesting in knowing if others have tried or succeeded in implementing remote makes, or if anyone has any suggestions. -- Ray Lischner UUCP: {uunet,apollo,decwrl}!mntgfx!lisch -- Ray Lischner UUCP: {uunet,apollo,decwrl}!mntgfx!lisch