Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://www.ssau.ru/files/education/metod_2/popov_instrum_sredstva_tehn.pdf
Äàòà èçìåíåíèÿ: Tue Dec 9 17:27:22 2014
Äàòà èíäåêñèðîâàíèÿ: Mon Apr 11 02:42:25 2016
Êîäèðîâêà:

Ïîèñêîâûå ñëîâà: tail


« .. ( )»

. .


H P B la d e S y s te m c 3 0 0 0 E n c lo s u r e , 0 1 0 4 0 0 .6 8 ­

2011


:

















« »









, " " 0 1 0 4 0 0 .6 8 ­ " ".

2



............................................................................................... 3 1 MPI ......................... 4 1.1 ......................................... 4 1.2 .............................................................. 11 1.3. 14 1.4 ..................................... 16 1.5 ............................................ 18 2. ...................................... 21 2 .1 ............................................. 21 2 .2 .......... 22 3. .... 25 3.1 ........................ 25 3.2 ......................................... 26 3.3 ........................................ 27 4. ............................ 29 4 .1 M P I ( PMB) ............................. 29 4 .2 ( HPL) ........................................................................ 31 1. Linux. ............................ 35 2. PBS ............................................... 38

3


1 MPI
1 .1 - ( m a s s iv e ly p a r a lle l p r o c e s s in g s y s te m s ­ ) . ( , ) , . , . , , . M P I (M essag e P a s s in g I n te r f a c e ­ ) . M P I - , . . M P I . , , . M P I M P I - . , . MPI- mpirun ( ­ ), ( ). ( ) . . M P I , , . . M P I , M P I - , MPI_COMM_WORLD. MPI. 4


, [5 ]. M P I , . M P I . ( ) , . MPI_. , , MPID_, MPIR_ PMPI_, . ( ) : MPI_COMM_WORLD, MPI_FLOAT. ­ , : MPI_Send, MPI_Comm_size. , mpi.h, ­ mpif.h. M P I. , . M P I . - M P I 1 , ­ 2 . 1 M P I - C
MPI MPI_CHAR MPI_SHORT MPI_INT MPI_LONG MPI_UNSIGNED_CHAR MPI_UNSIGNED_SHORT MPI_UNSIGNED MPI_UNSIGNED_LONG MPI_FLOAT MPI_DOUBLE MPI_LONG_DOUBLE MPI_BYTE MPI_PACKED signed char signed short int signed int signed long int unsigned char unsigned short int unsigned int unsigned long int float double long double

5


2 M P I -
MPI MPI_INTEGER MPI_REAL MPI_DOUBLE_PRECISION MPI_COMPLEX MPI_LOGICAL MPI_CHARACTER MPI_BYTE MPI_PACKED INTEGER REAL DOUBLE PRECISION COMPLEX LOGICAL CHARACTER(1)

MPI_BYTE - . MPI_PACKED , . , . M P I , , . . :
Hello world from process i of n

i ­ , n ­ . , helloworld.c:
#include #include "mpi.h" int main( argc, argv ) int argc; char **argv; { int rank, size; MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &size ); MPI_Comm_rank( MPI_COMM_WORLD, &rank ); printf( "Hello world from process %d of %d\n", rank, size ); MPI_Finalize(); return 0; }

4 M P I. 2 . , , 6 M P I, 6


. M P I [5]. M P I - ( ) MPI ( MPI_Init). , , , MPI_COMM_WORLD. . 0 groupsize-1, groupsize . groupsize , . MPI_Init :
C FO R TR A N

int MPI_Init(int *argc, char ***argv) INTEGER IERROR MPI_INIT(IERROR)

main, . IERROR . MPI- MPI_Finalize. M P I - .
C FO R TR A N

int MPI_Finalize(void) INTEGER IERROR MPI_FINALIZE(IERROR)















MPI_Comm_size. C int MPI_Comm_size(MPI_Comm comm, int *size) FO R TR A N INTEGER COMM, SIZE, IERROR MPI_COMM_SIZE(COMM, SIZE, IERROR) MPI_Comm_size: comm IN ­ ; OUT size ­ comm.

( IN , OUT , INOUT ­ , ). comm. COMM MPI_COMM_WORLD MPI_COMM_SELF, M P I. MPI_Comm_rank.
C FO R TR A N

int MPI_Comm_rank(MPI_Comm comm, int *rank) INTEGER COMM, RANK, IERROR MPI_COMM_RANK(COMM, RANK, IERROR)

7


MPI_Comm_rank: comm IN ­ ; OUT rank ­ , . , . 0..size-1 ( size ). , helloworld, , 4 .
% mpicc -o helloworld helloworld.c % mpirun -np 4 helloworld Hello world from process 0 of 4 Hello world from process 3 of 4 Hello world from process 1 of 4 Hello world from process 2 of 4 %

, . - , :
mpicc: Command not found.

, , P A T H , M P I. ,
setenv PATH /usr/local/mpi/bin:$PATH rehash

, M P I, , , ( ) . , 0 . . ring.c:
#include #include "mpi.h" int main( argc, argv ) int argc; char **argv; { int rank, value, size; MPI_Status status; MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &rank ); MPI_Comm_size( MPI_COMM_WORLD, &size );

8


do { if (rank == 0) { scanf( "%d", &value ); MPI_Send(&value, 1, MPI_INT, rank + 1, MPI_COMM_WORLD); } else { MPI_Recv(&value, 1, MPI_INT, rank 1, MPI_COMM_WORLD, &status); if (rank < size - 1) MPI_Send(&value, 1, MPI_INT, rank+1, MPI_COMM_WORLD); } printf( "Process %d got %d\n", rank, value ); } while (value >= 0); MPI_Finalize( ); return 0;

0,

0,

0,

}

6 M P I, . . (MPI_Send, MPI_Recv), . MPI_Send.
int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) FO R TR A N BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR MPI_SEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR) MPI_Send: IN buf ­ ; IN count ­ ; IN datatype ­ ; IN dest ­ - ,
C

comm; IN tag ­ ( ); IN comm ­ . count datatype tag dest comm. buf ­ , , . count = 1. MPI_Recv.
C

int MPI_Recv(void* buf, int count, MPI_Datatype

9


datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) FO R TR A N BUF(*) INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR MPI_RECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR) MPI_Recv: OUT buf ­ ; IN count ­ ; IN datatype ­ ; IN source ­ - ,

comm; IN tag ­ ; IN comm ­ ; OUT status ­ . count datatype tag source . MPI_Recv - MPI_ANY_SOURCE (" " ), ­ MPI_ANY_TAG (" "). - , M P I , 0 32767. , MPI_Recv , - . , (MPI_Probe MPI_Iprobe), . , " " , MPI_Recv , . ring.c .
% mpicc % mpirun 10 Process 0 -1 Process 0 Process 3 Process 3 Process 2 o ring ring.c -np 4 ring got 10 got got got got -1 10 -1 10

10


Process 2 got -1 Process 1 got 10 Process 1 got -1 %

. , , , , . - : . M P I , . , , , . C MPI_Send/MPI_Recv . 1 .2 - , M P I , . M P I , . , . S e n d /R e c v , M P I _ B c a s t. , , M P I- . - , , . , . : · ( M P I _ B a r r ie r ) . · , : o ( M P I _ B c a s t) ; o (gather) 11


( r o o t) ( M P I _ G a th e r , M P I _ G a th e r v ) ; o ( g a th e r ) ( M P I _ A llg a th e r , M P I _ A llg a th e r v ) ; o (scatter) ( M P I _ S c a tte r , M P I _ S c a tte r v ) ; o Scatter/Gather (All-to-All), , , , ( M P I _ A llto a ll, M P I _ A llto a llv ) . · (sum, min, max .) , : o (M P I_ R ed u ce); o ( M P I _ A llr e d u c e ) ; o R e d u c e /S c a tte r ( M P I _ R e d u c e _ s c a tte r ) ; o (MPI_Scan). , MPI_Bcast, : · , ; · " " , , , , , . " v " . : · -. · . · , , , . · . · . · . 12


:
int MPI_Barrier(MPI_Comm comm) int MPI_Bcast(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm) int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) int MPI_Allgather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm) int MPI_Scatter(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) int MPI_Alltoall(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm) int MPI_Reduce(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) int MPI_Allreduce(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) int MPI_Reduce_scatter(void* sendbuf, void* recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) int MPI_Scan(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)

3 . M P I.


M M M M M M M M M M M M

P P P P P P P P P P P P

I I I I I I I I I I I I

_ _ _ _ _ _ _ _ _ _ _ _

M AX M IN SUM PROD LAND LOR LXOR BAND BOR BXOR M AXLOC M IN L O C

A N D O R O R A N D O R O R

C in teg er, in teg er, F l C in teg er, in teg er, F l C o m p lex C in teg er,

FORT o atin g FORT o atin g

RAN p o in t RAN p o in t,

L o g ical

C in teg er, F O R T R A N in teg er, B y te

13


1 .3 . ( , ) , ( , ). M P I : · MPI; · ( - , - ). M P I , . , . M P I . M P I (o p aq u e) , : . ( ) : T y p e m a p = { ( ty p e 0 , d is p 0 ) , ..., ( ty p e n - 1 , d is p n - 1 ) , . b u f . n , i- b u f + d e s p ty p e. M P I . , M P I _ I N T { ( in t,0 ) } . , , . : · M P I M P I _ T y p e _ c o n tig u o u s , M P I _ T y p e _ v e c to r , M P I _ T y p e _ h v e c to r , M P I _ T y p e _ in d e x e d , M P I _ T y p e _ h in d e x e d , M P I _ T y p e _ s tr u c t. · M P I _ T y p e _ c o m m it. 14


. M P I . · , M P I_ T y p e_ free. M P I : , : · , . - + ( M P I _ T y p e _ e x te n t) . · . ( M P I _ T y p e _ s iz e ) . . , :

int MPI_Type_extent(MPI_Datatype datatype, MPI_Aint *extent) int MPI_Type_size(MPI_Datatype datatype, int *size) int MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype) int MPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype, MPI_Datatype *newtype) int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, MPI_Datatype *newtype) int MPI_Type_indexed(int count, int *array_of_blocklengths, int *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype) int MPI_Type_hindexed(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype) int MPI_Type_struct(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype *array_of_types, MPI_Datatype *newtype) int MPI_Type_commit(MPI_Datatype *datatype) int MPI_Type_free(MPI_Datatype *datatype)

15


, M P I_ P ack . p o s itio n , , 0 , . p o s itio n , . M P I_ P A C K E D co m m , M P I_ P ack . . M P I_ U n p ack , , p o s itio n , . p o s itio n 0 . , p o s itio n , . , , . M P I _ P a c k _ s iz e , d a ta ty p e . :
int MPI_Pack(void* inbuf, int incount, MPI_Datatype datatype, void *outbuf, int outsize, int *position, MPI_Comm comm) int MPI_Unpack(void* inbuf, int insize, int *position, void *outbuf, int outcount, MPI_Datatype datatype, MPI_Comm comm) int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size)

1 .4 , . - , . M P I . - , 16


, , - , . . . , 0 . M P I M P I_ G ro u p . : · MPI_GROUP_EMPTY ­ , ; · M P I_ G R O U P _ N U L L ­ , , . ( ), . , M P I , M P I_ C O M M _ W O R L D . . , , . . , . , - . M P I : · M P I_ C O M M _ W O R L D ­ , ; · MPI_COMM_SELF ­ , . :
MPI_Group_size(MPI_Group group, int *size) MPI_Group_rank(MPI_Group group, int *rank) MPI_Group_translate_ranks(MPI_Group group1, int n, int *ranks1, MPI_Group group2, int *ranks2) MPI_Comm_group(MPI_Comm comm, MPI_Group *group) MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)

17


MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPI_Group_incl(MPI_Group group, int n, int *ranks, MPI_Group *newgroup) MPI_Group_excl(MPI_Group group, int n, int *ranks, MPI_Group *newgroup) MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPI_Group_free(MPI_Group *group)

. , , . :
MPI_Comm_compare(MPI_Comm comm1,MPI_Comm comm2, int *result) MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm) MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm) MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm) MPI_Comm_free(MPI_Comm *comm)

1 .5 . in tr a . , 0 n-1 , n ­ . . M P I " " , , ­ . , , M P I, . 18


, . . , . M P I, , ro w -m ajo r , . . . . M P I _ C a r t_ c r e a te . , . , , , . , , , , . , , n- . :
MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods, int reorder, MPI_Comm *comm_cart) MPI_Dims_create(int nnodes, int ndims, int *dims) MPI_Cartdim_get(MPI_Comm comm, int *ndims) MPI_Cart_get(MPI_Comm comm, int ndims, int *dims, int *periods, int *coords) MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank) MPI_Cart_coords(MPI_Comm comm, int rank, int ndims, int *coords) MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest) MPI_Cart_sub(MPI_Comm comm, int *remain_dims, MPI_Comm *newcomm)

:
MPI_Topo_test(MPI_Comm comm, int *status)

19


int MPI_Graph_create( MPI_Comm comm, int nnodes, int *index, int *edges, int reorder, MPI_Comm *comm_graph) MPI_Graph_neighbors_count( MPI_Comm comm, int rank, int *neighbors_count) MPI_Graph_neighbors( MPI_Comm comm, int rank, int max, int *neighbors) MPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges) MPI_Graph_get(MPI_Comm comm, int nnodes, int nedges, int *index, int * edges)

20


2.
2 .1 L in u x ssh - . M ic r o s o f t W in d o w s PuTTy ( h ttp ://w w w .c h ia r k .g r e e n e n d .o r g .u k /~ s g ta th a m /p u tty / d o w n lo a d .h tm l )

. 1 . P u T T y H o s tN a m e I P ­ 8 9 .1 8 6 .2 4 7 .1 4 . S a v e d S e s s io n s ( .1 « H P » ) . C a te g o r y -- W in d o w -- T r a n s la tio n -- C h a r a c te r s e t tr a n s la tio n o n r e c e iv e d d a ta U T F - 8 ( . . 2 ) . C a te g o r y -- S e s s io n . « S a v e » . H P . P u T T y «H P » " L o ad ". H o st N am e IP ­ 8 9 .1 8 6 .2 4 7 .1 4 . " O p en ". , . , . 21


. 2 . 2 .2 W in S C P . W in S C P h ttp ://w in s c p .n e t . W in S C P H o s t n a m e I P ­ 8 9 .1 8 6 .2 4 7 .1 4 , U s e r n a m e ( . . 3 ). P assw o rd , . " S av e".

22


. 3 . W in S C P W in S C P L o g in ( . 4 ).

. 4 . " L o g in " . S e r v e r p ro m p t ( . 5 ). . W in S C P . , , W in d o w s E x p lo r e r T o ta l C o m m a n d e r . 23


, W in d o w s . D rag an d D ro p .

. 5 . , W in S C P : , , , .

. 6 . W in S C P F 1 0 C o m m a n d s /Q u it. . 24


3.
3 .1 , . , , . . : v im , e d , e m a c s , j o e . , , , M id n ig h tC o m m a n d e r . m c.

. 7 M id n ig h tC o m m a n d e r M id n ig h t C o m m a n d e r -- . -- , . M id n ig h t C o m m a n d e r , F a r M a n a g e r , T o ta lC o m m a n d e r , N o r to n C o m m a n d e r . , , . F 1-F 1 0 . , F 9 . , 25


. , . : , M C , . . , F 4 . , , F 1 0 E sc. , F 2 , . S h if t+ F 4 ( S h if t F 4 ) . , . 3 .2 : · m p ic c -- C; · m p ix x ( m p iC C ) -- C + + ; · m p if7 7 m p if9 0 -- F o r tr a n . g cc , _ --help (., mpif77 --help). , m y p r o g .c mpicc ­o myprog ­lm myprog.c - o , myprog. mpicc ­lm myprog.c

a.out. , , M a k e f ile s h e ll - .

26


. . M P I , . s w itc h e r . I . switcher mpi --list which mpicc . cexec which mpicc s w itc h e r M P I , .. (. man switcher). 3 .3 P B S T o rq u e . , . , T o rq u e , . : qsub <_> qsub <_> , , , ( . . 4 .1 4 .2 ) . P B S T o rq u e , : - , , , ­ . 27 M PI


T o rq u e , ( ) . ­ . qstat . ( . 8 ).

. 8 9 1 9 2 , serp, workq, job_hpl. qstat -n ( N D S ), ( T im e ) , ( T S K ) ( S ) : · Q ­ , · R ­ . qdel <_>

28


4.
4 .1 M P I ( P M B ) ( P a lla s M P I B e n c h m a r k ) I : -, . /opt/benchmarks. tar xvf PMB2.2.tar . make_i86 (. 9)

. 9 m a k e _ i8 6 : · I_ - · - m p ic h · C L IN K E R - m p ic h M a k e f ile

m p ic h

-



- ( . 1 0 ):

29


. 1 0 M a k e file m ak e . P B S ,, : = 3 0 , = 2 , = 8 . /t/mpi/mpi ( . 1 1 ).

. 1 1 jo b _ p m b qsub job_pmb ( ), , 1 .

30


, « » P in g P o n g 0 - , - ( . 1 2 ). 4 .2 ( H P L ) H P L ( H ig h P e r f o r m a n c e L in p a c k ) , . G o to B L A S . ~/.bashrc export OMP_NUM_THREADS=1 b ash . /opt/benchmarks. tar xvf hpl.tar H P L . Make.Linux_XEON_MPICH_CHP4 : RH = Linux_XEON_ MPICH_CHP4 TOPdir = $()/hpl = mpicc dir = I (c. which mpicc) LAdir = /t/GotoBLAS/1.26 make arch = Linux__1_4 . L

31


. 1 2 P M B L : ( . 1 3 )

· Ps x Qs 14- (8 ) · N B s = 2 2 0 : , : L 8 0 % .

N s = s q r t [ ( 0 ,8 ( 1 0 2 4 1 0 2 4 1 0 2 4 n m ) ) / 8 ] n = 1 4 - m = 8 - ( ). 32


. 1 3 H P L S : - 5 0 , - 1 4 , - 8 ( . 1 4 )

. 1 4 jo b _ h p l / t/m p i /m p ir u n qsub job_hpl qstat . qstat -f . 33


. 1 5 H P L H P L = PHPL / P , PHPL - HPL, P - P P = n n F x k n = 1 4 - , n c = 8 - , F = 2 .3 3 - , k - ( I n te l X e o n 6 7 * * k = 4 ) .

34


1. Linux.
L in u x . M id n ig h tC o m m a n d e r . M id n ig h tC o m m a n d e r , , . co m m an d , man command «q ». pwd ­ ; c d d i r ­ d ir , cd /h o m e /u s e r n a m e ( $ H O M E ) ; mkdir subdir ­ subdir; rmdir subdir ­ subdir; ls ­ , ls dir ­ dir; ls ­A - , ; ls ­l - (, , ); mv oldname newname - ; cp -R dirname destination - dirname d e s tin a tio n .

35


f i l e f i l e n a m e ( s ) - ( , A S C II , JP E G im a g e d a ta .) ; c a t f i l e n a m e ( s ) - ( !); m o r e f i l e n a m e ( s ) - , c a t, ; less filename(s) ­ more; head filename - filename; tail filename - filename; w c f i l e n a m e ( s ) - , ; r m f i l e n a m e ( s ) - , rm -rf. cp filename newname - ; c p f i l e n a m e ( s ) d i r - ; mv oldname newname - ; m v f i l e n a m e ( s ) d i r - ; f i n d d i r - n a m e f i l e n a m e - ( ) f il e n a m e d ir . passwd - Linux; ; who ­ , ; finger ­ ;

36


write ­ , ; top - , ; ps ­U user_name u ser_ n am e; ( p id ) ,

kill xxxxx ­ xxxxx; killall proc_name - proc_name; date - ; cal ­ . exit ­ clear ­ du dir ­ dir

37


2. PBS
P B S T o rq u e . T o rq u e. #PBS -o $DIR/stdout.log , s td o u t #PBS -e $DIR/stderr.log , stderr #PBS -l nodes=8:ppn=2:cpp=1 . n o d es - ppn - cp p - #PBS -l walltime=20:00:00 #PBS -l mem=1000mb cat $PBS_NODEFILE | grep -v master | sort | uniq -c | awk '{printf "%s:%s\n", $2, $1}' > $PBS_O_WORKDIR/temp.tmp , te m p .tm p cd $PBS_O_WORKDIR /usr/bin/mpirun -m temp.tmp ­np 100 ./a.out te m p .tm p 1 0 0 . : #PBS #PBS #PBS #PBS #PBS o e l l l $DIR/stdout.log $DIR/stderr.log nodes=50:ppn=2 walltime=20:00:00 mem=1000mb 38


cat $PBS_NODEFILE | grep -v master | sort | uniq -c | awk '{printf "%s:%s\n", $2, $1}' > $PBS_O_WORKDIR/script1.temp.sh.mf cd $PBS_O_WORKDIR /usr/bin/mpirun -m script1.temp.sh.mf -np 100 ./a.out a .o u t 5 0 , 2 . s td o u t -- s td o u t.lo g , s td e r r -- s td e r r .lo g . $ D I R s td o u t.lo g s td e r r .lo g , /h o m e /u s e r _ n a m e . 2 0 . 1 0 0 0 . f ir s t : #PBS -o #PBS -e #PBS -l #PBS -l ./first $DIR/stdout.log $DIR/stderr.log walltime=10:00 mem=100mb

q su b . qdel ­ . , , . : qdel [-W ] , . , , -p.

39