514 theory sources are checked for conflicts wrt.\ this hypothetical change of |
514 theory sources are checked for conflicts wrt.\ this hypothetical change of |
515 syntax, e.g.\ to reveal occurrences of identifiers that need to be quoted. |
515 syntax, e.g.\ to reveal occurrences of identifiers that need to be quoted. |
516 |
516 |
517 \<^medskip> |
517 \<^medskip> |
518 Option \<^verbatim>\<open>-H\<close> augments the cluster hosts to be used in this build process. |
518 Option \<^verbatim>\<open>-H\<close> augments the cluster hosts to be used in this build process. |
519 Each \<^verbatim>\<open>-H\<close> option accepts multiple host names (separated by commas), which |
519 Each \<^verbatim>\<open>-H\<close> option accepts multiple host or cluster names (separated by |
520 all share the same (optional) parameters. Multiple \<^verbatim>\<open>-H\<close> options may be |
520 commas), which all share the same (optional) parameters or system options. |
521 given to specify further hosts (with different parameters). For example: |
521 Multiple \<^verbatim>\<open>-H\<close> options may be given to specify further hosts (with different |
522 \<^verbatim>\<open>-H host1,host2:jobs=2,threads=4 -H host3:jobs=4,threads=6\<close>. |
522 parameters). For example: \<^verbatim>\<open>-H host1,host2:jobs=2,threads=4 -H |
|
523 host3:jobs=4,threads=6\<close>. |
523 |
524 |
524 The syntax for host parameters follows Isabelle outer syntax, notably with |
525 The syntax for host parameters follows Isabelle outer syntax, notably with |
525 double-quoted string literals. On the command-line, this may require extra |
526 double-quoted string literals. On the command-line, this may require extra |
526 single quotes or escapes. For example: \<^verbatim>\<open>-H 'host4:dirs="..."'\<close>. |
527 single quotes or escapes. For example: \<^verbatim>\<open>-H 'host4:dirs="..."'\<close>. |
|
528 |
|
529 The system registry (\secref{sec:system-registry}) may define host and |
|
530 cluster names in its tables \<^verbatim>\<open>host\<close> and \<^verbatim>\<open>cluster\<close>, respectively. A name in |
|
531 option \<^verbatim>\<open>-H\<close> without prefix refers to the registry table \<^verbatim>\<open>host\<close>: each entry |
|
532 consists of an optional \<^verbatim>\<open>hostname\<close> and further options. A name with the |
|
533 prefix ``\<^verbatim>\<open>cluster.\<close>'' refers to the table \<^verbatim>\<open>cluster\<close>: each entry provides |
|
534 \<^verbatim>\<open>hosts\<close>, an array of names for entries of the table \<^verbatim>\<open>host\<close> as above, and |
|
535 additional options that apply to all hosts simultaneously. |
527 |
536 |
528 The local host only participates in cluster build, if an explicit option |
537 The local host only participates in cluster build, if an explicit option |
529 \<^verbatim>\<open>-j\<close> > 0 is given. The default is 0, which means that \<^verbatim>\<open>isabelle build -H\<close> |
538 \<^verbatim>\<open>-j\<close> > 0 is given. The default is 0, which means that \<^verbatim>\<open>isabelle build -H\<close> |
530 will initialize the build queue and oversee remote workers, but not run any |
539 will initialize the build queue and oversee remote workers, but not run any |
531 Isabelle sessions on its own account. |
540 Isabelle sessions on its own account. |
600 \<^smallskip> |
609 \<^smallskip> |
601 Run a distributed build on 3 cluster hosts (local, \<^verbatim>\<open>host1\<close>, \<^verbatim>\<open>host2\<close>): |
610 Run a distributed build on 3 cluster hosts (local, \<^verbatim>\<open>host1\<close>, \<^verbatim>\<open>host2\<close>): |
602 @{verbatim [display] \<open> isabelle build -a -j2 -o threads=8 \ |
611 @{verbatim [display] \<open> isabelle build -a -j2 -o threads=8 \ |
603 -H host1:jobs=2,threads=8 |
612 -H host1:jobs=2,threads=8 |
604 -H host2:jobs=4:threads=4,numa,shared\<close>} |
613 -H host2:jobs=4:threads=4,numa,shared\<close>} |
|
614 |
|
615 \<^smallskip> |
|
616 Use build hosts and cluster specifications: |
|
617 @{verbatim [display] \<open> isabelle build -H a -H b -H cluster.xy\<close>} |
|
618 |
|
619 The above requires a \<^path>\<open>$ISABELLE_HOME_USER/etc/registry.toml\<close> file like |
|
620 this: |
|
621 |
|
622 @{verbatim [display] \<open> host.a = { hostname = "host-a.acme.org", jobs = 2 } |
|
623 host.b = { hostname = "host-b.acme.org", jobs = 2 } |
|
624 |
|
625 host.x = { hostname = "server1.example.com" } |
|
626 host.y = { hostname = "server2.example.com" } |
|
627 cluster.xy = { hosts = ["x", "y"], jobs = 4 } |
|
628 \<close>} |
605 \<close> |
629 \<close> |
606 |
630 |
607 |
631 |
608 section \<open>Print messages from session build database \label{sec:tool-log}\<close> |
632 section \<open>Print messages from session build database \label{sec:tool-log}\<close> |
609 |
633 |