| 752 | |
| 753 | == Le concept de jobset == |
| 754 | |
| 755 | HTCondor permet la soumission d'ensemble de tâches. La syntaxe du fichier de soumission est légèrement différente que pour une tâche simple, vous pouvez trouver la documentation [https://htcondor.readthedocs.io/en/23.0/users-manual/job-sets.html#submitting-a-job-set ici] |
| 756 | |
| 757 | La commande HTcondor diffère également, elle est de la forme suivante : {{{htcondor jobset submit jobs.set}}} |
| 758 | |
| 759 | === Soumission d'un ensemble de tâches OpenMPI === |
| 760 | |
| 761 | On retrouve dans le fichier jobs.set le contenu d'un fichier de soumission de l'univers vanilla. La différence réside dans son "encapsulation" dans un itérateur dans le ficher de soumission du jobset. |
| 762 | |
| 763 | **jobs.set** |
| 764 | {{{ |
| 765 | name = ExampleJobSet |
| 766 | |
| 767 | # Définition d'un itérateur: un tableau contenant des items qui sont des liste d'arguments (dans notre cas, un seul argument par item, le nom d'une machine) |
| 768 | |
| 769 | iterator = table machine { |
| 770 | lpsc-c0.in2p3.fr |
| 771 | lpsc-c8.in2p3.fr |
| 772 | lpsc-c12.in2p3.fr |
| 773 | lpsc-c13.in2p3.fr |
| 774 | lpsc-c15.in2p3.fr |
| 775 | lpsc-c16.in2p3.fr |
| 776 | lpsc-c17.in2p3.fr |
| 777 | lpsc-c18.in2p3.fr |
| 778 | lpsc-c19.in2p3.fr |
| 779 | lpsc-c20.in2p3.fr |
| 780 | lpsc-c21.in2p3.fr |
| 781 | lpsc-c22.in2p3.fr |
| 782 | lpsc-c23.in2p3.fr |
| 783 | lpsc-c24.in2p3.fr |
| 784 | lpsc-c25.in2p3.fr |
| 785 | lpsc-c26.in2p3.fr |
| 786 | lpsc-c27.in2p3.fr |
| 787 | } |
| 788 | |
| 789 | # définition de la tâche de base qui va être "itérée" |
| 790 | |
| 791 | job { |
| 792 | |
| 793 | universe = vanilla |
| 794 | executable = run.sh |
| 795 | arguments = -np 8 example |
| 796 | |
| 797 | output = example_$(machine).out |
| 798 | error = example_$(machine).err |
| 799 | log = example.log |
| 800 | |
| 801 | should_transfer_files = yes |
| 802 | when_to_transfer_output = on_exit |
| 803 | transfer_input_files = example |
| 804 | |
| 805 | # renommage du fichier de sortie en fonction du nom de la machine |
| 806 | transfer_output_remaps = "example_$(machine).out=$(machine)/example_$(machine).out ; example_$(machine).err=$(machine)/example_$(machine).err" |
| 807 | |
| 808 | # Spécifiez le nombre de slots (processus MPI) requis |
| 809 | request_cpus = 1 |
| 810 | request_memory = 1024M |
| 811 | request_disk = 10240K |
| 812 | |
| 813 | +Requirements = machine =?= "$(machine)" |
| 814 | +WantParallelSchedulingGroups = True |
| 815 | |
| 816 | queue |
| 817 | } |
| 818 | |
| 819 | }}} |
| 820 | |