parallel programming

리눅스 병렬 프로그래밍 - pbs & loadleveler

hongiiv 2006. 7. 4. 16:48
반응형
이제 mpi 프로그래밍을 사용할 수 있는 환경이 마련되었다. 즉, 리눅스에서 병렬 프로그래밍이 가능해 졌다는 것이다. 그럼 이제 병렬 S/W를 만들고 실제 수행할 때 좀 더 심플하게 수행하도록 pbs나 loadleveler등의 스케줄러를 통해 실제 mpi 프로그램을 실행하도록 한다.

loadleveler script for parallel job (parallel.cmd)
[code c] #!/bin/bash # @ job_type = parallel # @ class = p_normal # @ input = /dev/null # @ step_name = parallel # @ output = $(step_name).$(cluster).out # @ error = $(step_name).$(cluster).err # @ resources = ConsumableCpus(1) # @ wall_clock_limit = 00:10:00 # @ node = 2 # @ tasks_per_node = 2 # @ queue echo "----------------------------------------------------" echo LOADL_STEP_ID=$LOADL_STEP_ID echo "----------------------------------------------------" ll_get_machine_list > /tmp/machinelist.$LOADL_SETP_ID machine_count=`cat /tmp/machinelist.$LOADL_SETP_ID | wc -l` echo $machine_count echo MachineList: cat /tmp/machinelist.$LOADL_SETP_ID echo "----------------------------------------------------" mpirun -np $machine_count -machinefile /tmp/machinelist.$LOADL_SETP_ID pi3 rm /tmp/machinelist.$LOADL_SETP_ID [/code]
pbs script for parallel job (parallel.cmd)

[code c] #!/bin/bash # PBS script mpich-mpi_job.pbs -> pbs script to submit a MPICH-MPI job. # Submit with "qsub -l nodes=#_of_nodes:ppn=1 mpich-mpi_job.pbs" # where #_of_nodes is the number of nodes you are requesting for # your MPICH-MPI job. ### Job name #PBS -N mpich-mpi_job ### Output files #PBS -o mpich-mpi_job.out #PBS -e mpich-mpi_job.err ### Queue name #PBS -q workq ### Script Commands cd $PBS_O_WORKDIR echo "Running MPICH-MPI program" # get the number of nodes allocated to MPICH-MPI through PBS NP=`(wc -l < $PBS_NODEFILE) | awk '{print $1}'` # run the MPICH-MPI program mpirun -machinefile $PBS_NODEFILE -np $NP ./mpich-mpi_program exit 0 [/code]
반응형