File: qmake.html

package info (click to toggle)
gridengine 6.2-4
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 51,532 kB
  • ctags: 51,172
  • sloc: ansic: 418,155; java: 37,080; sh: 22,593; jsp: 7,699; makefile: 5,292; csh: 4,244; xml: 2,901; cpp: 2,086; perl: 1,895; tcl: 1,188; lisp: 669; ruby: 642; yacc: 393; lex: 266
file content (220 lines) | stat: -rw-r--r-- 8,562 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<HTML>
<BODY BGCOLOR=white>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
NAME
     qmake  -  distributed  parallel  make,  scheduling  by  Grid
     Engine.

SYNTAX
     qmake [ options ] -- [ gmake options ]

DESCRIPTION
     <I>Qmake</I> is a parallel, distributed <B><A HREF="../htmlman1/make.html">make(1)</A></B> utility. Scheduling
     of  the  parallel  <I>make</I>  tasks is done by Grid Engine. It is
     based on <I>gmake</I> (GNU make), version 3.78.1. Both Grid  Engine
     and  <I>gmake</I>  command  line options can be specified. They are
     separated by "--".

     All Grid Engine options valid with <B><A HREF="../htmlman1/qsub.html">qsub(1)</A></B> or <B><A HREF="../htmlman1/qrsh.html">qrsh(1)</A></B> can be
     specified  with  <I>qmake</I>  - see <B><A HREF="../htmlman1/submit.html">submit(1)</A></B> for a description of
     all Grid Engine command line options.   The  <B><A HREF="../htmlman1/make.html">make(1)</A></B>  manual
     page describes the <I>gmake</I> command line syntax.

     The syntax of <I>qmake</I> makefiles corresponds to  <I>gmake</I>  and  is
     described in the "GNU Make Manual".

     A typical qmake call will use the Grid Engine  command  line
     options -cwd to have a scheduled make started in the current
     working directory on the execution host, -v PATH if the Grid
     Engine environment is not setup in the users .cshrc or .pro-
     file shell resource file and request  slots  in  a  parallel
     environment (see <B><A HREF="../htmlman5/sge_pe.html">sge_pe(5)</A></B> ).

     If no resource request (Grid Engine command line option  -l)
     is  specified,  qmake  will  use  the  environment  variable
     SGE_ARCH to request the same architecture for task execution
     as  has  the submit host.  If SGE_ARCH is set, the architec-
     ture specified in SGE_ARCH will be  requested  by  inserting
     the  option -l arch=$SGE_ARCH into the command line options.
     If SGE_ARCH is not set, the make tasks can  be  executed  on
     any available architecture.  As this is critical for typical
     make (compile) jobs, a warning will be output.

     <I>qmake</I> has two different modes  for  allocating  Grid  Engine
     resources for the parallel execution of tasks:

     1. Allocation of resources using a parallel environment.  If
     the -pe option is used on the qmake command line, a parallel
     job is scheduled by Grid Engine.  The make  rules  are  exe-
     cuted as tasks within this parallel job.

     2. Dynamic allocation of resources. If no parallel  environ-
     ment  is  requested  when  submitting a qmake job, each make
     rule will generate an individual Grid Engine qrsh job.   All
     resource  requests  given  to qmake will be inherited by the
     jobs processing the make rules.
     In dynamic allocation mode, additional resource requests for
     individual  rules  can be specified by preceding the rule by
     the definition of an environment variable SGE_RREQ. The rule
     then   takes  the  form  SGE_RREQ="&lt;request&gt;"  &lt;rule&gt;,  e.g.
     SGE_RREQ="-l lic=1" cc -c ...  If such  makefile  rules  are
     executed in a make utility other than qmake, the environment
     variable SGE_RREQ will be set in the environment established
     for the rule's execution - without any effect.

EXAMPLES
          qmake -cwd -v PATH -pe compiling 1-10 --

     will request between 1 and 10 slots in parallel  environment
     "compiling".  If the SGE_ARCH environment variable is set to
     the  machines  architecture,  a  resource  request  will  be
     inserted  into the qmake command line to start the qmake job
     on the same architecture as the submit host. The <I>make</I>  tasks
     will  inherit the complete environment of the calling shell.
     It will execute as many parallel tasks as  slots  have  been
     granted by Grid Engine.

          qmake -l arch=sol-sparc -cwd -v PATH -- -j 4

     will submit each make rule as an individual qrsh job. A max-
     imum  of  4  tasks will be processed in parallel.  The qmake
     job will be started on a machine of architecture  sol-sparc,
     this  resource  request  will  also be inherited by the make
     tasks, i.e. all jobs created for the execution of make tasks
     will request the architecture sol-sparc.

     If the following Makefile is submitted with the  above  com-
     mand  line,  additional  resource  requests will be made for
     individual rules:  For the compile and link rules,  compiler
     licenses   (comp)   and   linker  licenses  (link)  will  be
     requested, in addition to the resource request made for  the
     whole job (-l arch=sol-sparc) on the command line.

          all: test

          clean:
               rm -f test main.o functions.o

          test: main.o functions.o
               SGE_RREQ="-l link=1" ld -o test main.o functions.o

          main.o: main.c
               SGE_RREQ="-l comp=1" cc -c -DALIASPATH=

          functions.o: functions.c
               SGE_RREQ="-l comp=1" cc -c -DALIASPATH=


     The command line
          qmake -cwd -v PATH -l arch=sol-sparc64 -pe make 3 --

     will request 3 parallel <I>make</I> tasks to be executed  on  hosts
     of  architecture  "sol-sparc64". The submit may be done on a
     host of any architecture.

     The shell script

          #!/bin/sh
          qmake -inherit --

     can be submitted by

          qsub -cwd -v PATH -pe make 1-10 [further sge options] &lt;script&gt;

     <I>Qmake</I> will inherit the resources granted for the job sumbit-
     ted above under parallel environment "make".

ENVIRONMENTAL VARIABLES
     SGE_ROOT       Specifies the location  of  the  Grid  Engine
                    standard configuration files.

     SGE_CELL       If set, specifies  the  default  Grid  Engine
                    cell.  To  address  a  Grid Engine cell <I>qmake</I>
                    uses (in the order of precedence):

                         The name of the cell  specified  in  the
                         environment  variable SGE_CELL, if it is
                         set.

                         The  name  of  the  default  cell,  i.e.
                         default.


     SGE_DEBUG_LEVEL
                    If  set,  specifies  that  debug  information
                    should  be written to stderr. In addition the
                    level of detail in which debug information is
                    generated is defined.

     SGE_ARCH       The architecture of the submit host. If  this
                    variable  is  set  in the submission environ-
                    ment, qmake will request the given  architec-
                    ture   for  job  execution  (see  DESCRIPTION
                    above).

KNOWN PROBLEMS
  Slow NFS server
     Very low file server performance may  lead  to  problems  on
     depending files.

     Example: Host a compiles a.c to a.o, host b compiles b.c  to
     b.o,  host  c shall link program c from a.o and b.o. In case
     of very bad NFS performance, host c might not yet see  files
     a.o and b.o.

  Multiple commands in one rule
     If multiple commands are executed in one rule, the  makefile
     has to ensure that they are handled as one command line.

     Example:

          libx.a:
               cd x
               ar ru libx.a x.o

     Building libx.a will fail, if the commands are  executed  in
     parallel  (and  possibly on different hosts). Write the fol-
     lowing instead:

          libx.a:
               cd x ; ar ru libx.a x.o

     or

          libx.a:
               cd x ; \
               ar ru libx.a x.o

SEE ALSO
     <B><A HREF="../htmlman1/submit.html">submit(1)</A></B> , <B><A HREF="../htmlman5/sge_pe.html">sge_pe(5)</A></B> as well as <B><A HREF="../htmlman1/make.html">make(1)</A></B> (GNU make  manpage)
     and <I>The</I> <I>GNU</I> <I>Make</I> <I>Manual</I> in &lt;sge_root&gt;/3rd_party/qmake.

COPYRIGHT
     <I>Qmake</I> contains portions of Gnu Make (<I>gmake</I>),  which  is  the
     copyright of the Free Software Foundation, Inc., Boston, MA,
     and is protected by the Gnu General Public License.
     See   <B><A HREF="../htmlman1/sge_intro.html">sge_intro(1)</A></B>   and   the   information   provided   in
     &lt;sge_root&gt;/3rd_party/qmake for a statement of further rights
     and permissions.













</PRE>
<HR>
<ADDRESS>
Man(1) output converted with
<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
</ADDRESS>
</BODY>
</HTML>