pbsrun.8B 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112
  1. .\" Copyright (C) 1994-2018 Altair Engineering, Inc.
  2. .\" For more information, contact Altair at www.altair.com.
  3. .\"
  4. .\" This file is part of the PBS Professional ("PBS Pro") software.
  5. .\"
  6. .\" Open Source License Information:
  7. .\"
  8. .\" PBS Pro is free software. You can redistribute it and/or modify it under the
  9. .\" terms of the GNU Affero General Public License as published by the Free
  10. .\" Software Foundation, either version 3 of the License, or (at your option) any
  11. .\" later version.
  12. .\"
  13. .\" PBS Pro is distributed in the hope that it will be useful, but WITHOUT ANY
  14. .\" WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  15. .\" FOR A PARTICULAR PURPOSE.
  16. .\" See the GNU Affero General Public License for more details.
  17. .\"
  18. .\" You should have received a copy of the GNU Affero General Public License
  19. .\" along with this program. If not, see <http://www.gnu.org/licenses/>.
  20. .\"
  21. .\" Commercial License Information:
  22. .\"
  23. .\" For a copy of the commercial license terms and conditions,
  24. .\" go to: (http://www.pbspro.com/UserArea/agreement.html)
  25. .\" or contact the Altair Legal Department.
  26. .\"
  27. .\" Altair’s dual-license business model allows companies, individuals, and
  28. .\" organizations to create proprietary derivative works of PBS Pro and
  29. .\" distribute them - whether embedded or bundled with other software -
  30. .\" under a commercial license agreement.
  31. .\"
  32. .\" Use of Altair’s trademarks, including but not limited to "PBS™",
  33. .\" "PBS Professional®", and "PBS Pro™" and Altair’s logos is subject to Altair's
  34. .\" trademark licensing policies.
  35. .\"
  36. .TH pbsrun 8B "13 October 2017" Local "PBS Professional"
  37. .SH NAME
  38. .B pbsrun
  39. \- general-purpose wrapper script for mpirun
  40. .SH SYNOPSIS
  41. .B pbsrun
  42. .B pbsrun
  43. --version
  44. .SH DESCRIPTION
  45. .B pbsrun
  46. is a wrapper script for any of several versions of mpirun.
  47. This provides a user-transparent way for PBS to control jobs
  48. which call mpirun in their jobscripts.
  49. The
  50. .B pbsrun_wrap
  51. script instantiates
  52. .B pbsrun
  53. so that the wrapper script for the specific version of mpirun
  54. being used has the same name as that version of mpirun.
  55. If the mpirun wrapper script is run inside a PBS job, it
  56. translates any mpirun call of the form:
  57. .br
  58. mpirun [<options>] <executable> [<args>]
  59. .br
  60. into
  61. .br
  62. mpirun [<options>] pbs_attach [<special options to pbs_attach>] \\
  63. .br
  64. <executable> [<args>]
  65. .br
  66. where
  67. .I special options to pbs_attach
  68. refers to any options needed by
  69. .B pbs_attach
  70. to do its job (e.g. -j $PBS_JOBID).
  71. If the wrapper script is executed outside of PBS, a warning is issued
  72. about "not running under PBS", but it proceeds as if the actual
  73. program had been called in standalone fashion.
  74. The
  75. .B pbsrun
  76. wrapper script is not meant to be executed directly; instead
  77. it is instantiated by
  78. .B pbsrun_wrap.
  79. It is copied to the target directory and renamed
  80. "pbsrun.<mpirun version/flavor>" where
  81. .I mpirun version/flavor
  82. is a string that identifies the mpirun
  83. version being wrapped (e.g. ch_gm).
  84. The
  85. .B pbsrun
  86. script, if executed inside a PBS job,
  87. runs an
  88. .B initialization script,
  89. named $PBS_EXEC/lib/MPI/pbsrun.<mpirun version/flavor>.init, then
  90. parses mpirun-like arguments from the command line, sorting which
  91. options and option values to retain, to ignore, or to transform,
  92. before calling the actual mpirun script with a "pbs_attach" prefixed
  93. to the executable. The actual mpirun to call is found by tracing the
  94. link pointed to by $PBS_EXEC/lib/MPI/pbsrun.<mpirun
  95. version/flavor>.link.
  96. For all of the wrapped MPIs, the maximum number of ranks that can be
  97. launched is the number of entries in $PBS_NODEFILE.
  98. The wrapped MPIs are:
  99. .RS 5
  100. MPICH-GM's mpirun (mpirun.ch_gm) with rsh/ssh (
  101. .B deprecated
  102. as of 14.2.1)
  103. .br
  104. MPICH-MX's mpirun (mpirun.ch_mx) with rsh/ssh (
  105. .B deprecated
  106. as of 14.2.1)
  107. .br
  108. MPICH-GM's mpirun (mpirun.mpd) with MPD (
  109. .B deprecated
  110. as of 14.2.1)
  111. .br
  112. MPICH-MX's mpirun (mpirun.mpd) with MPD (
  113. .B deprecated
  114. as of 14.2.1)
  115. .br
  116. MPICH2's mpirun
  117. .br
  118. Intel MPI's mpirun (
  119. .B deprecated
  120. as of 13.0)
  121. .br
  122. MVAPICH1's mpirun (
  123. .B deprecated
  124. as of 14.2.1)
  125. .br
  126. MVAPICH2's mpiexec
  127. .br
  128. IBM's poe
  129. .RE
  130. .SH OPTIONS
  131. .IP "--version" 8
  132. The
  133. .B pbsrun
  134. command returns its PBS version information and exits.
  135. This option can only be used alone.
  136. .SH INITIALIZATION SCRIPT
  137. The initialization script, called $PBS_EXEC/lib/MPI/pbsrun.<mpirun version/flavor>.init,
  138. where
  139. .I mpirun version/flavor
  140. reflects the mpirun flavor/version being wrapped,
  141. can be modified by an administrator to customize against the local
  142. flavor/version of mpirun being wrapped.
  143. Inside this sourced init script, 8 variables are set:
  144. .RS 5
  145. options_to_retain="-optA -optB <val> -optC <val1> val2> ..."
  146. .br
  147. options_to_ignore="-optD -optE <n> -optF <val1> val2> ..."
  148. .br
  149. options_to_transform="-optG -optH <val> -optI <val1> val2> ..."
  150. .br
  151. options_to_fail="-optY -optZ ..."
  152. .br
  153. options_to_configfile="-optX <val> ..."
  154. .br
  155. options_with_another_form="-optW <val> ..."
  156. .br
  157. pbs_attach=pbs_attach
  158. .br
  159. options_to_pbs_attach="-J $PBS_JOBID"
  160. .br
  161. .RE
  162. .B Initialization Script Options
  163. .br
  164. .IP "options_to_retain" 5
  165. Space-separated list of options and values that
  166. pbsrun.<mpirun version/flavor> passes on to the actual mpirun call. Options must
  167. begin with "-" or "--", and option arguments must be specified by some
  168. arbitrary name with left and right arrows, as in "<val1>".
  169. .IP "options_to_ignore" 5
  170. Space-separated list of options and values that pbsrun.<mpirun
  171. version/flavor> does not pass on to the actual mpirun call. Options
  172. must begin with "-" or "--", and option arguments must be specified by
  173. arbitrary names with left and right arrows, as in "<n>".
  174. .IP "options_to_transform" 5
  175. Space-separated list of options and values
  176. that
  177. .B pbsrun
  178. modifies before passing on to the actual mpirun call.
  179. .IP "option_to_fail" 5
  180. Space-separated list of options that will cause
  181. .B pbsrun
  182. to exit upon encountering a match.
  183. .IP "options_to_configfile" 5
  184. Single option and value that refers to
  185. the name of the "configfile" containing command line segments found in
  186. certain versions of mpirun.
  187. .IP "options_with_another_form" 5
  188. Space-separated list of options and values that can be found in
  189. options_to_retain, options_to_ignore, or options_to_transform, whose
  190. syntax has an alternate, unsupported form.
  191. .IP "pbs_attach" 5
  192. Path to
  193. .B pbs_attach,
  194. which is called before the
  195. <executable> argument of mpirun.
  196. .IP "options_to_pbs_attach" 5
  197. Special options to pass to the
  198. .B pbs_attach call.
  199. You may pass variable references (e.g. $PBS_JOBID) and
  200. they are substituted by
  201. .B pbsrun
  202. to actual values.
  203. .LP
  204. .RE
  205. If
  206. .B pbsrun
  207. encounters any option not found in
  208. .I options_to_retain, options_to_ignore,
  209. and
  210. .I options_to_transform,
  211. then it is flagged
  212. as an error.
  213. .B Functions Created
  214. .br
  215. These functions are created inside the init script. These can be
  216. modified by the PBS administrator.
  217. .RS 5
  218. .IP "transform_action () {" 5
  219. # passed actual values of $options_to_transform
  220. .br
  221. args=$*
  222. .br
  223. }
  224. .IP "boot_action () {" 5
  225. mpirun_location=$1
  226. .br
  227. }
  228. .IP "evaluate_options_action () {" 5
  229. # passed actual values of transformed options
  230. .br
  231. args=$*
  232. .br
  233. }
  234. .IP "configfile_cmdline_action () {" 5
  235. args=$*
  236. .br
  237. }
  238. .IP "end_action () {" 5
  239. mpirun_location=$1
  240. .br
  241. }
  242. .LP
  243. .IP "transform_action()" 5
  244. The pbsrun.<mpirun version/flavor> wrapper script invokes the function
  245. .I transform_action()
  246. (called once on each matched item and value) with
  247. actual options and values received matching one of the
  248. "options_to_transform". The function returns a string to pass on
  249. to the actual mpirun call.
  250. .IP "boot_action()" 5
  251. Performs any initialization tasks needed before running the actual
  252. mpirun call. For instance, GM's MPD requires the MPD daemons to be
  253. user-started first. This function is called by the pbsrun.<mpirun
  254. version/flavor> script with the location of actual mpirun passed as
  255. the first argument. Also, the pbsrun.<mpirun version/flavor> checks
  256. for the exit value of this function to determine whether or not to
  257. progress to the next step.
  258. .IP "evaluate_options_action()" 5
  259. Called with the actual options
  260. and values that resulted after consulting
  261. .I options_to_retain, options_to_ignore, options_to_transform,
  262. and executing
  263. .I transform_action().
  264. This provides one more chance for the script writer to evaluate all
  265. the options and values in general, and make any necessary adjustments,
  266. before passing them on to the actual mpirun call. For instance,
  267. this function can specify what the default value is for a missing
  268. .I -np
  269. option.
  270. .IP "configfile_cmdline_action()" 5
  271. Returns the actual options and values
  272. to be put in before the option_to_configfile parameter.
  273. .IP "configfile_firstline_action()" 5
  274. Returns the item that is
  275. put in the first line of the configuration file specified in the
  276. .I option_to_configfile
  277. parameter.
  278. .IP "end_action()" 5
  279. Called by pbsrun.<mpirun version/flavor> at the end of execution. It
  280. undoes any action done by transform_action(), like cleanup of
  281. temporary files. It is also called when pbsrun.<mpirun
  282. version/flavor> is prematurely killed. This function is called
  283. with the location of actual mpirun passed as first argument.
  284. .RE
  285. The actual mpirun program to call is the path pointed to by
  286. $PBS_EXEC/lib/MPI/pbsrun.<mpirun version/flavor>.link.
  287. .B Modifying *.init scripts
  288. .br
  289. In order for administrators to modify *.init scripts without breaking
  290. package verification in RPM, master copies of the initialization
  291. scripts are named *.init.in.
  292. .B pbsrun_wrap
  293. instantiates the *.init.in files as *.init. For instance,
  294. $PBS_EXEC/lib/MPI/pbsrun.mpich2.init.in is the master copy, and
  295. .B pbsrun_wrap
  296. instantiates it as $PBS_EXEC/lib/MPI/pbsrun.mpich2.init.
  297. .B pbsrun_unwrap
  298. takes care of removing the *.init files.
  299. .SH MPIRUN VERSIONS/FLAVORS
  300. -----------------------------------------------------------
  301. .br
  302. .B MPICH-GM's mpirun (mpirun.ch_gm) with rsh/ssh: pbsrun.ch_gm
  303. .br
  304. -----------------------------------------------------------
  305. SYNTAX
  306. .RS 5
  307. .B pbsrun.ch_gm <options> <executable> <arg1>
  308. .B <arg2> ... <argn>
  309. .B Deprecated.
  310. This is the PBS wrapper script to MPICH-GM's mpirun (mpirun.ch_gm) with
  311. rsh/ssh process startup method.
  312. If executed inside a PBS job, this allows for PBS to track all MPICH-GM
  313. processes started by rsh/ssh so that PBS can perform accounting and
  314. have complete job control.
  315. If executed outside of a PBS job, it behaves exactly as if standard
  316. .B mpirun.ch_gm
  317. was used.
  318. .RE
  319. OPTIONS HANDLING
  320. .RS 5
  321. If executed inside a PBS job script, all
  322. .B mpirun.ch_gm
  323. options given are
  324. passed on to the actual mpirun call with these exceptions:
  325. .IP "-machinefile <file>" 5
  326. The
  327. .I file
  328. argument contents are ignored and replaced by the contents of
  329. the $PBS_NODEFILE.
  330. .IP "-np" 5
  331. If not specified, the number of entries found in the
  332. $PBS_NODEFILE is used.
  333. .IP "-pg" 5
  334. The use of the
  335. .I -pg
  336. option, for having multiple executables on multiple
  337. hosts, is allowed but it is up to user to make sure
  338. only PBS hosts are specified in the process group file; MPI processes
  339. spawned are not guaranteed to be under the control of PBS.
  340. .RE
  341. WRAP/UNWRAP
  342. .RS 5
  343. To wrap MPICH-GM's mpirun script:
  344. .RS 4
  345. .B # pbsrun_wrap [MPICH-GM_BIN_PATH]/mpirun.ch_gm pbsrun.ch_gm
  346. .RE
  347. To unwrap MPICH-GM's mpirun script:
  348. .RS 4
  349. .B # pbsrun_unwrap pbsrun.ch_gm
  350. .RE
  351. .RE
  352. .RE
  353. -----------------------------------------------------------
  354. .br
  355. .B MPICH-MX's mpirun (mpirun.ch_mx) with rsh/ssh: pbsrun.ch_mx
  356. .br
  357. -----------------------------------------------------------
  358. SYNTAX
  359. .RS 5
  360. .B pbsrun.ch_mx <options> <executable> <arg1>
  361. .B <arg2> ... <argn>
  362. .B Deprecated.
  363. This is the PBS wrapper script to MPICH-MX's mpirun (mpirun.ch_mx) with
  364. rsh/ssh process startup method.
  365. If executed inside a PBS job, this allows for PBS to track all MPICH-MX
  366. processes started by rsh/ssh so that PBS can perform accounting and
  367. has complete job control.
  368. If executed outside of a PBS job, it behaves exactly as if standard
  369. mpirun.ch_mx was used.
  370. .RE
  371. OPTIONS HANDLING
  372. .RS 5
  373. If executed inside a PBS job script, all mpirun.ch_gm options given are
  374. passed on to the actual mpirun call with some exceptions:
  375. .IP "-machinefile <file>" 5
  376. The
  377. .I file
  378. argument contents is ignored and replaced by the contents
  379. of the $PBS_NODEFILE.
  380. .IP "-np" 5
  381. If not specified, the number of entries found in the
  382. $PBS_NODEFILE is used.
  383. .IP "-pg" 5
  384. The use of the
  385. .I -pg
  386. option, for having multiple executables on multiple
  387. hosts, is allowed but it is up to user to make sure
  388. only PBS hosts are specified in the process group file; MPI processes
  389. spawned are not guaranteed to be under the control of PBS.
  390. .RE
  391. WRAP/UNWRAP
  392. .RS 5
  393. To wrap MPICH-MX's mpirun script:
  394. .RS 4
  395. .B # pbsrun_wrap [MPICH-MX_BIN_PATH]/mpirun.ch_mx pbsrun.ch_mx
  396. .RE
  397. To unwrap MPICH-MX's mpirun script:
  398. .RS 4
  399. .B # pbsrun_unwrap pbsrun.ch_mx
  400. .RE
  401. .RE
  402. .RE
  403. --------------------------------------------------------
  404. .br
  405. .B MPICH-GM's mpirun (mpirun.mpd) with MPD: pbsrun.gm_mpd
  406. .br
  407. --------------------------------------------------------
  408. SYNTAX
  409. .RS 5
  410. .B pbsrun.gm_mpd <options> <executable> <arg1>
  411. .B <arg2> ... <argn>
  412. .B Deprecated.
  413. This is the PBS wrapper script to MPICH-GM's mpirun (mpirun.mpd) with
  414. MPD process startup method.
  415. If executed inside a PBS job, this allows for PBS to track all MPICH-GM
  416. processes started by the MPD daemons so that PBS can perform accounting
  417. have and complete job control.
  418. If executed outside of a PBS job, it behaves exactly as if standard
  419. mpirun.ch_gm with MPD was used.
  420. .RE
  421. OPTIONS HANDLING
  422. .RS 5
  423. If executed inside a PBS job script, all mpirun.ch_gm with MPD options given
  424. are passed on to the actual mpirun call with these exceptions:
  425. .IP "-m <file>" 5
  426. The
  427. .I file
  428. argument contents are ignored and replaced by the contents of
  429. the $PBS_NODEFILE.
  430. .IP "-np" 5
  431. If not specified, the number of entries found in the
  432. $PBS_NODEFILE is used.
  433. .IP "-pg" 5
  434. The use of the
  435. .I -pg
  436. option, for having multiple executables on multiple
  437. hosts, is allowed but it is up to user to make sure
  438. only PBS hosts are specified in the process group file; MPI processes
  439. spawned are not guaranteed to be under the control of PBS.
  440. .RE
  441. STARTUP/SHUTDOWN
  442. .RS 5
  443. The script starts MPD daemons on each of the unique hosts listed in
  444. $PBS_NODEFILE, using either rsh or ssh method based on value of environment
  445. variable RSHCOMMAND. The default is rsh.
  446. The script also takes care of shutting down the MPD daemons at the end of
  447. a run.
  448. .RE
  449. WRAP/UNWRAP
  450. .RS 5
  451. To wrap MPICH-GM's mpirun script with MPD:
  452. .RS 4
  453. .B # pbsrun_wrap [MPICH-GM_BIN_PATH]/mpirun.mpd pbsrun.gm_mpd
  454. .RE
  455. To unwrap MPICH-GM's mpirun script with MPD:
  456. .RS 4
  457. .B # pbsrun_unwrap pbsrun.gm_mpd
  458. .RE
  459. .RE
  460. .RE
  461. --------------------------------------------------------
  462. .br
  463. .B MPICH-MX's mpirun (mpirun.mpd) with MPD: pbsrun.mx_mpd
  464. .br
  465. --------------------------------------------------------
  466. SYNTAX
  467. .RS 5
  468. .B pbsrun.mx_mpd <options> <executable> <arg1>
  469. .B <arg2> ... <argn>
  470. .B Deprecated.
  471. This is the PBS wrapper script to MPICH-MX's mpirun (mpirun.mpd) with
  472. MPD process startup method.
  473. If executed inside a PBS job, this allows for PBS to track all MPICH-MX
  474. processes started by the MPD daemons so that PBS can perform accounting
  475. and have complete job control.
  476. If executed outside of a PBS job, it behaves exactly as if standard
  477. mpirun.ch_mx with MPD was used.
  478. .RE
  479. OPTIONS HANDLING
  480. .RS 5
  481. If executed inside a PBS job script, all mpirun.ch_gm with MPD options given
  482. are passed on to the actual mpirun call with these exceptions:
  483. .IP "-m <file>" 5
  484. The
  485. .I file
  486. argument contents are ignored and replaced by the contents of
  487. the $PBS_NODEFILE.
  488. .IP "-np" 5
  489. If not specified, the number of entries found in the $PBS_NODEFILE is used.
  490. .IP "-pg" 5
  491. The use of the
  492. .I -pg
  493. option, for having multiple executables on multiple
  494. hosts, is allowed but it is up to user to make sure
  495. only PBS hosts are specified in the process group file; MPI processes
  496. spawned are not guaranteed to be under the control of PBS.
  497. .RE
  498. STARTUP/SHUTDOWN
  499. .RS 5
  500. The script starts MPD daemons on each of the unique hosts listed in
  501. $PBS_NODEFILE, using either rsh or ssh method, based on value of environment
  502. variable RSHCOMMAND -- rsh is the default.
  503. The script also takes care of shutting down the MPD daemons at the end of
  504. a run.
  505. .RE
  506. WRAP/UNWRAP
  507. .RS 5
  508. To wrap MPICH-MX's mpirun script with MPD:
  509. .RS 4
  510. .B # pbsrun_wrap [MPICH-MX_BIN_PATH]/mpirun.mpd pbsrun.mx_mpd
  511. .RE
  512. To unwrap MPICH-MX's mpirun script with MPD:
  513. .RS 4
  514. .B # pbsrun_unwrap pbsrun.mx_mpd
  515. .RE
  516. .RE
  517. .RE
  518. ------------------------------
  519. .br
  520. .B MPICH2's mpirun: pbsrun.mpich2
  521. .br
  522. ------------------------------
  523. SYNTAX
  524. .RS 5
  525. .B pbsrun.mpich2 [<global args>] [<local args>]
  526. .B <executable>
  527. .RS 14
  528. .B [<args>]
  529. .B [: [<local args>] <executable> [<args>]]
  530. .RE
  531. .br
  532. - or -
  533. .br
  534. .B pbsrun.mpich2 -configfile <configfile>
  535. where <configfile> contains command line segments as lines:
  536. .RS 5
  537. [local args] executable1 [args]
  538. .br
  539. [local args] executable2 [args]
  540. .br
  541. [local args] executable3 [args]
  542. .RE
  543. This is the PBS wrapper script to MPICH2's mpirun.
  544. If executed inside a PBS job, this allows for PBS to track all MPICH2
  545. processes so that PBS can perform accounting and have complete job control.
  546. If executed outside of a PBS job, it behaves exactly as if standard
  547. MPICH2's mpirun was used.
  548. .RE
  549. OPTIONS HANDLING
  550. .RS 5
  551. If executed inside a PBS job script, all MPICH2's mpirun options given
  552. are passed on to the actual mpirun call with these exceptions:
  553. .IP "-host and -ghost" 5
  554. For specifying the execution host to run
  555. on. Not passed on to the actual mpirun call.
  556. .IP "-machinefile <file>" 5
  557. The
  558. .I file
  559. argument contents are ignored and replaced by the
  560. contents of the $PBS_NODEFILE.
  561. .IP "MPICH2's mpirun -localonly <x>" 5
  562. For specifying the <x> number of
  563. processes to run locally. Not supported. The user is advised
  564. instead to use the equivalent arguments:
  565. .I "-np <x> -localonly".
  566. The reason
  567. for this is that the
  568. .B pbsrun
  569. wrapper script cannot handle a variable number
  570. of arguments to an option (e.g. "-localonly" has 1 argument and "-localonly <x>"
  571. has 2 arguments).
  572. .IP "-np" 5
  573. If user did not specify a
  574. .I -np
  575. option, then no default value is provided
  576. by the PBS wrapper scripts. It is up to the local mpirun to decide what
  577. the reasonable default value should be, which is usually 1.
  578. .RE
  579. STARTUP/SHUTDOWN
  580. .RS 5
  581. The script takes care of ensuring that the MPD daemons on each of the hosts
  582. listed in the $PBS_NODEFILE are started. It also takes care of ensuring
  583. that the MPD daemons have been shut down at the end of MPI job execution.
  584. .RE
  585. WRAP/UNWRAP
  586. .RS 5
  587. To wrap MPICH2's mpirun script:
  588. .RS 4
  589. .B # pbsrun_wrap [MPICH2_BIN_PATH]/mpirun pbsrun.mpich2
  590. .RE
  591. To unwrap MPICH2's mpirun script:
  592. .RS 4
  593. .B # pbsrun_unwrap pbsrun.mpich2
  594. .RE
  595. .RE
  596. .RE
  597. -----------------------------------
  598. .br
  599. .B Intel MPI's mpirun: pbsrun.intelmpi
  600. .br
  601. -----------------------------------
  602. Wrapping Intel MPI, and support for mpdboot, are
  603. .B deprecated.
  604. SYNTAX
  605. .RS 5
  606. .B pbsrun.intelmpi [<mpdboot options>] [<mpiexec options>]
  607. .RS 16
  608. .B <executable> [<prog args>]
  609. .br
  610. .B [: [<mpiexec options>] <executable> [<prog args>]]
  611. .RE
  612. .br
  613. - or -
  614. .br
  615. .B pbsrun.intelmpi [<mpdboot options>] -f <configfile>
  616. where
  617. .I mpdboot options
  618. are any options to pass to the mpdboot program,
  619. which is automatically called by Intel MPI's mpirun to start MPDs, and
  620. .I configfile
  621. contains command line segments as lines.
  622. This is the PBS wrapper script to Intel MPI's mpirun.
  623. If executed inside a PBS job, this allows for PBS to track all Intel MPI
  624. processes so that PBS can perform accounting and have complete job control.
  625. If executed outside of a PBS job, it behaves exactly as if standard
  626. Intel MPI's mpirun was used.
  627. .RE
  628. Using
  629. .B pbsrun, pbsrun_wrap,
  630. and
  631. .B pbsrun_unwrap
  632. with Intel MPI is
  633. .B deprecated
  634. as of 13.0.
  635. OPTIONS HANDLING
  636. .RS 5
  637. If executed inside a PBS job script, all of the options to the PBS
  638. interface to MPI's mpirun are passed to the actual
  639. mpirun call with these exceptions:
  640. .IP "-host and -ghost" 5
  641. For specifying the execution host to run
  642. on. Not passed on to the actual mpirun call.
  643. .IP "-machinefile <file>" 5
  644. The
  645. .I file
  646. argument contents are ignored and replaced by the
  647. contents of the $PBS_NODEFILE.
  648. .IP "mpdboot options --totalnum=* and --file=*" 5
  649. Ignored and replaced by the number of unique entries in $PBS_NODEFILE
  650. and name of $PBS_NODEFILE respectively.
  651. .IP "arguments to mpdboot options --file=* and -f <mpd_hosts_file>" 5
  652. Replaced by $PBS_NODEFILE.
  653. .IP "-s" 5
  654. If
  655. .B pbsrun.intelmpi
  656. is called inside a PBS job, Intel MPIs mpirun
  657. .I -s
  658. argument
  659. to mpdboot are not supported as this closely matches the mpirun option
  660. .I "-s <spec>".
  661. The user can simply run a separate mpdboot
  662. .I -s
  663. before calling
  664. mpirun. A warning message is issued by
  665. .B pbsrun.intelmpi
  666. upon
  667. encountering a
  668. .I -s
  669. option telling users of the supported form.
  670. .IP "-np" 5
  671. If the user does not specify a
  672. .I -np
  673. option, then no default value is provided
  674. by the PBS wrap scripts. It is up to the local mpirun to decide what
  675. the reasonable default value should be, which is usually 1.
  676. .RE
  677. STARTUP/SHUTDOWN
  678. .RS 5
  679. Intel MPI's mpirun itself takes care of starting/stopping the
  680. MPD daemons.
  681. .B pbsrun.intelmpi
  682. always passes the arguments
  683. .I -totalnum=<number of mpds to start>
  684. and
  685. .I -file=<mpd_hosts_file>
  686. to the actual
  687. mpirun, taking its input from unique entries in $PBS_NODEFILE.
  688. .RE
  689. WRAP/UNWRAP
  690. .RS 5
  691. To wrap Intel MPI's mpirun script:
  692. .RS 4
  693. .B # pbsrun_wrap [INTEL_MPI_BIN_PATH]/mpirun pbsrun.intelmpi
  694. .RE
  695. To unwrap Intel MPI's mpirun script:
  696. .RS 4
  697. .B # pbsrun_unwrap pbsrun.intelmpi
  698. .RE
  699. .RE
  700. .RE
  701. -----------------------------------------------------------
  702. .br
  703. .B MVAPICH1's mpirun: pbsrun.mvapich1
  704. .br
  705. -----------------------------------------------------------
  706. SYNTAX
  707. .RS 5
  708. .B pbsrun.mvapich1 <mpirun options> <executable> <options>
  709. .B Deprecated.
  710. Only one executable can be specified.
  711. This is the PBS wrapper script to MVAPICH1's mpirun.
  712. If executed inside a PBS job, this allows for PBS to be aware of all MVAPICH1
  713. ranks and track their resources, so that PBS can perform accounting and
  714. have complete job control.
  715. If executed outside of a PBS job, it behaves exactly as if standard
  716. .B mpirun
  717. was used.
  718. .RE
  719. OPTIONS HANDLING
  720. .RS 5
  721. If executed inside a PBS job script, all
  722. .B mpirun
  723. options given are
  724. passed on to the actual mpirun call with these exceptions:
  725. .IP "-map <list>" 5
  726. The
  727. .I map
  728. option is ignored.
  729. .IP "-exclude <list>" 5
  730. The
  731. .I exclude
  732. option is ignored.
  733. .IP "-machinefile <file>" 5
  734. The
  735. .I machinefile
  736. option is ignored.
  737. .IP "-np" 5
  738. If not specified, the number of entries found in the
  739. $PBS_NODEFILE is used.
  740. .RE
  741. WRAP/UNWRAP
  742. .RS 5
  743. To wrap MVAPICH1's mpirun script:
  744. .RS 4
  745. .B # pbsrun_wrap <path-to-actual-mpirun> pbsrun.mvapich1
  746. .RE
  747. To unwrap MVAPICH1's mpirun script:
  748. .RS 4
  749. .B # pbsrun_unwrap pbsrun.mvapich1
  750. .RE
  751. .RE
  752. .RE
  753. -----------------------------------------------------------
  754. .br
  755. .B MVAPICH2's mpiexec: pbsrun.mvapich2
  756. .br
  757. -----------------------------------------------------------
  758. SYNTAX
  759. .RS 5
  760. .B pbsrun.mvapich2 <mpiexec args> <executable> <executable's
  761. .RS 16
  762. .B args>
  763. .B [: <mpiexec args> <executable> <executable's args>]
  764. .RE
  765. Multiple executables can be specified using the colon notation.
  766. This is the PBS wrapper script to MVAPICH2's mpiexec, which have
  767. the same format.
  768. If executed inside a PBS job, this allows for PBS to be aware of all MVAPICH2
  769. ranks and track their resources, so that PBS can perform accounting and
  770. have complete job control.
  771. If executed outside of a PBS job, it behaves exactly as if standard
  772. .B mpiexec
  773. was used.
  774. .RE
  775. OPTIONS HANDLING
  776. .RS 5
  777. If executed inside a PBS job script, all
  778. .B mpiexec
  779. options given are
  780. passed on to the actual mpiexec call with these exceptions:
  781. .IP "-host <host>" 5
  782. The
  783. .I host
  784. argument contents are ignored.
  785. .IP "-machinefile <file>" 5
  786. The
  787. .I file
  788. argument contents are ignored and replaced by the contents of
  789. the $PBS_NODEFILE.
  790. .RE
  791. WRAP/UNWRAP
  792. .RS 5
  793. To wrap MVAPICH2's mpiexec script:
  794. .RS 4
  795. .B # pbsrun_wrap <path-to-actual-mpiexec> pbsrun.mvapich2
  796. .RE
  797. To unwrap MVAPICH2's mpiexec script:
  798. .RS 4
  799. .B # pbsrun_unwrap pbsrun.mvapich2
  800. .RE
  801. .RE
  802. .RE
  803. -----------------------------------------------------------
  804. .br
  805. .B IBM's poe: pbsrun.poe
  806. .br
  807. -----------------------------------------------------------
  808. SYNTAX
  809. .RS 5
  810. .B pbsrun.poe <options> <executable> <arg1>
  811. .B <arg2> ... <argn>
  812. This is the PBS wrapper script to IBM's poe, allowing LAPI or MPI
  813. programs to use InfiniBand or the HPS in US mode.
  814. If executed inside a PBS job, this allows for PBS to track all resources and
  815. MPI ranks.
  816. PBS can perform accounting and have complete job control.
  817. If executed outside of a PBS job, it behaves exactly as if standard
  818. .B poe
  819. was used.
  820. The script will use the -euilib {ip | us} option and the MP_EUILIB environment
  821. variable to indicate use of US mode, to maintain compatibility with standard poe.
  822. .RE
  823. OPTIONS AND ENVIRONMENT VARIABLES
  824. .br
  825. .RS 5
  826. Users submitting jobs whose programs use poe can set environment
  827. variables instead of using options to poe. The equivalent environment
  828. variable is listed with its poe option. If executed inside a PBS job
  829. script, all
  830. .B pbsrun.poe
  831. options and environment variables except the following are passed on
  832. to poe:
  833. .IP "-devtype, MP_DEVTYPE" 5
  834. If InfiniBand is not specified in either the option or the environment
  835. variable, the InfiniBand interconnect is not used for the program.
  836. .IP "-euidevice, MP_EUIDEVICE" 5
  837. Ignored by PBS.
  838. .IP "-euilib {ip|us}, MP_EUILIB"
  839. If the command line option
  840. .I -euilib
  841. is set, it will take precedence over the
  842. .I MP_EUILIB
  843. environment variable.
  844. If set to "us", the program uses User Space mode.
  845. If set to any other value, that value is passed to IBM poe.
  846. .IP "-hostfile, -hfile, MP_HOSTFILE" 5
  847. Ignored. If this is specified, PBS prints the following:
  848. .br
  849. .RS
  850. .IP "" 3
  851. "pbsrun.poe: Warning, -hostfile value replaced by PBS"
  852. .LP
  853. or
  854. .IP "" 3
  855. "pbsrun.poe: Warning -hfile value replaced by PBS"
  856. .LP
  857. .br
  858. If this environment variable is set when a poe job is submitted,
  859. PBS prints the following error message:
  860. .br
  861. .IP "" 3
  862. "pbsrun.poe: Warning MP_HOSTFILE value replaced by PBS"
  863. .LP
  864. .RE
  865. .IP "-instances, MP_INSTANCES" 5
  866. The option and the environment variable are treated differently:
  867. .RS 5
  868. .IP "-instances" 5
  869. If the option is set, PBS prints a warning:
  870. .RS
  871. .IP "" 3
  872. "pbsrun.poe: Warning, -instances cmd line option removed by PBS"
  873. .LP
  874. .RE
  875. .IP "MP_INSTANCES" 5
  876. If the environment variable is set, PBS uses it to calculate
  877. the number of network windows for the job.
  878. The maximum value allowed can be requested by using
  879. the string "max" for the environment variable.
  880. If the environment variable is set to a value greater than
  881. the maximum allowed value, it is replaced with the maximum
  882. allowed value.
  883. The default maximum value is 4.
  884. .RE
  885. .IP "-procs, MP_PROCS" 5
  886. This option or environment variable should be set to the
  887. total number of mpiprocs requested by the job when using
  888. US mode.
  889. .br
  890. If neither this option nor the MP_PROCS environment
  891. variable is set, PBS uses the number of entries in
  892. $PBS_NODEFILE.
  893. .br
  894. If this option is set to N, and the job is submitted with a total
  895. of M mpiprocs:
  896. .RS
  897. .IP "If N >=M:" 3
  898. The value N is passed to IBM poe.
  899. .IP "If N < M and US mode is not being used:" 3
  900. The value N is passed to poe.
  901. .br
  902. .IP "If N < M and US mode is being used:" 3
  903. US mode is turned off and a warning is printed:
  904. .RS
  905. .IP "" 3
  906. "pbsrun.poe: Warning, user mode disabled due to MP_PROCS setting"
  907. .LP
  908. .RE
  909. .RE
  910. .RE
  911. WRAP/UNWRAP
  912. .RS 5
  913. To wrap IBM's poe:
  914. .RS 4
  915. .B # pbsrun_wrap <path to actual poe> pbsrun.poe
  916. .RE
  917. To unwrap the IBM poe mpirun script:
  918. .RS 4
  919. .B # pbsrun_unwrap pbsrun.poe
  920. .RE
  921. .RE
  922. .RE
  923. .SH REQUIREMENTS
  924. The mpirun being wrapped
  925. must be installed and working on all the nodes in the PBS cluster.
  926. .SH ERRORS
  927. If
  928. .B pbsrun
  929. encounters any option not found in
  930. .I options_to_retain, options_to_ignore,
  931. and
  932. .I options_to_transform,
  933. then it is flagged as an error.
  934. .SH SEE ALSO
  935. The
  936. .B PBS Professional Administrator's Guide
  937. .LP
  938. pbs_attach(8B),
  939. pbsrun_wrap(8B),
  940. pbsrun_unwrap(8B)