running a job in unix - bash

I have the following small script - myjob.qsub:
#!/bin/sh -login
#PBS -l walltime=00:15:00
#PBS -l nodes=1:ppn=1
#PBS -l mem=2gb
#PBS -N myrun05168
/myexecutable >mylog.log
I did make it executable by:
chmod u+x myexecutable
When I try to run by changing directory to the folder of executible and then sumbit the job:
qsub myjob.qsub
gives me error of no /myexecutable file or directory.
I tried to use "./":
#!/bin/sh -login
#PBS -l walltime=00:15:00
#PBS -l nodes=1:ppn=1
#PBS -l mem=2gb
#PBS -N myrun05168
./myexecutable >mylog.log
but doesnot help.
when I just tried to run my executable in command line as, it works:
./myexecutable
As I can not run this as this job need to be submitted as job in cluster computer.
Any suggestions ?

you need to give the full path to the script, I assume the script isn't actually in your root directory, maybe it should be /home/username/myexecutable

Your script runs with -login, is that needed?
You should change your script to use the relative pathname, like
myruns/p_runs/Fw2010/seed1/myexecutable >mylog.log

Related

PBS Scheduling on Allocating One Node

I am trying to request two nodes in a cluster setting; however, when I print ${PBS_NODEFILE}, only one node is visible. I am running this batch script on the login node. Any suggestions to why I am only seeing one node ?
#PBS -S /bin/bash
#PBS -V
#PBS -W block=true
#PBS -l nodes=2:ppn=12
#PBS -l walltime=01:00:00
#PBS -N resnet50
#PBS -A MyProject
echo "The nodefile for this job is stored at ${PBS_NODEFILE}"
cat ${PBS_NODEFILE}

how to run bash script inside the PBS script in the head node, after running the program in compute nodes

current working script (script-A)
#!/bin/bash
#PBS -N test7
#PBS -q batch
#PBS -l nodes=1:ppn=6,walltime=00:30:00
#PBS -j oe
cd \$PBS_O_WORKDIR
mpirun -np 6 /home/sai/1QE/qe-6.5/bin/pw.x < si.scf.in > 92scf.out<br>
What I want?
I want to run a "bash script analysis.sh" in the "HEAD NODE" after running the above job inside the compute node.
e.g. script-B
#!/bin/bash
#PBS -N test7
#PBS -q batch
#PBS -l nodes=1:ppn=6,walltime=00:30:00
#PBS -j oe
cd \$PBS_O_WORKDIR
mpirun -np 6 /home/sai/1QE/qe-6.5/bin/pw.x < si.scf.in > 92scf.out
bash analysis.sh
Problem
The above script-B is also fine, but not in my case.
my problem is the analysis program is installed only in my head node, not in the compute node.
so it will work only in the head node.
so, is there ant way to run the analysis.sh script in the head node after PBS script in the compute node.

Job crashes with OOM when I submit as a que (PBS/Torque) but not when I run simply run the command in terminal

Here's the job script I use,
#!/bin/bash
#PBS -q batch
#PBS -N simulation
#PBS -j n
#PBS -o /dev/null
#PBS -l nodes=1:ppn=1,pmem=3400mb
#PBS -l ncpus=1,mem=3400mb
cd ${PBS_O_WORKDIR} && \
./executable
I get this error:
Operating system error: Cannot allocate memory
Allocation would exceed memory limit
I've tried increasing the ppn and ncpus and mem such that it matches requirement of my program (~6GB). Doesn't help either.
This doesn't happen when I run the command in terminal. It works just fine.
Try run the program with all memory in the system allocated to the job.
Then at the very end execute qstat -f $PBS_JOBID| grep resources to see what Torque thinks about used resources.
resources_used.cput = 00:00:00
resources_used.energy_used = 0
resources_used.mem = 94724kb
resources_used.vmem = 1564024kb
resources_used.walltime = 00:03:25

PBS torque email variable

Here is an example of pbs that I use:
#!/bin/bash
#PBS -S /bin/bash
#PBS -N myJob
#PBS -l nodes=1:ppn=4
#PBS -l walltime=50:00:00
#PBS -q route
export MYMAIL=mytestmail#testmail.com
#PBS -m ae
#PBS -M mytestmail#testmail.com
./script1.sh
echo $PBS_JOBID $PBS_O_WORKDIR | mail -s "$PBS_JOBNAME script1 done" $MYMAIL
./script2.sh
echo $PBS_JOBID $PBS_O_WORKDIR | mail -s "$PBS_JOBNAME script2 done" $MYMAIL
./script3.sh
echo $PBS_JOBID $PBS_O_WORKDIR | mail -s "$PBS_JOBNAME script3 done" $MYMAIL
./script4.sh
As you can see I want to receive notifications during the process.
My problem is that users must write twice their email address.
I tried:
#PBS -M $MYMAIL
but it does not work.
I also tried to find a pbs variable containing the email stored during
#PBS -M mytestmail#testmail.com
but nothing ...
An idea ?
You are sending different emails by different methods. With the #PBS -M line you are telling pbs_server on the head node where is should send emails about the job and with "|mail " you are sending mail to the user from the node running the job.
It seems that Torque does not set an environment variable that contains the contents of -M so we can't pass that to mail.
I have two ideas for you. The first is trying to capture the Mail_Users line from qstat and parsing it.
qstat -f [job number] | grep Mail_Users
The second is to create a .forward file for each user since Torque will email the local user account by default eliminating the #PBS -M line. You will still need to pass an email or account name to mail but you may be able to get away with:
mail -s "$PBS_JOBNAME script1 done" `whoami`

Virtual memory allocation in cluster - line command

I`m running a code on a computer cluster with 24 nodes, 12 processors each one and something about 64Gb memory each node. The commands I'm using to launch it are the following
#!/bin/sh
#PBS -N cclit
#PBS -l walltime=288:00:00
#PBS -l nodes=1:ppn=1
#PBS -j oe
#PBS -m n
#PBS -l mem=60000mb
Unfortunately I realized that my code need at least a virtual memory which is 120000mb. What I tried to do has been to modify the above commands as
#!/bin/sh
#PBS -N cclit
#PBS -l walltime=288:00:00
#PBS -l nodes=2:ppn=2
#PBS -j oe
#PBS -m n
#PBS -l mem=120000mb
But it doesn't seem to work... It stops again at the same point telling me that virtual memory is not sufficient.
My code is not parallelized, meaning that only 1 processor is needed. What happens when the memory of a node is totally used?? I guess Im doing something wrong with '#PBS -l mem=120000mb', or probably I need some other command... I tried to look for a solution on the web but I didn t find anything..
Can you help me?
Thanks Mirko.

Resources