◦◦◦◦◦◦◦◦◦◦◦◦◦◦

la –aquota –v
lfs quota /lustre/df /tmp◦◦◦◦◦◦◦◦$ dd if=/dev/zero of=/lustre/$USER/4G.dat bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 41.0291 seconds, 105 MB/s
$ rm /lustre/$USER/4G.dat$ lfs setstripe -s 1M -c 4 /lustre/$USER/4G.dat$ dd if=/dev/zero of=/lustre/$USER/4G.dat bs=1M count=4096
4096+0 records in4096+0 records out
4294967296 bytes (4.3 GB) copied, 10.9823 seconds, 391 MB/s qstat-f◦◦

 qscript◦(qstat -l)

BATCH REQUEST: 253443.batch1
Name: test.sh
Owner: uid=33071, gid=30144
Priority: 63
State: 1(RUNNING)
Created at: Tue Jun 30 05:36:24 2009
Started at: Tue Jun 30 05:36:27 2009
Remain : 14 minutes 47 seconds
QUEUE
Name:tutorialPer-proc. volafile size limit = 0 kilobytes
Per-req. volafile size limit = 0 kilobytes
Per-proc. working set limit= 28 gigabytes
Per-req. etime limit= 15 minutes
warning = 0 seconds
Per-proc. execution nice pri. = 0FILES
Stderr: None
Stdout: Nonestderr to stdout: NoRESOURCES
MAIL
Per-proc. CPU time limit= UNLIMITED
Address: t00004@ha8000-3.cc.u-tokyo.ac.jp
warning = 0 seconds
When:
Per-req. CPU time limit= UNLIMITED
warning = 0 seconds
MISC
Per-proc. core file size limit= 0 kilobytes
Partition: None
Per-proc. data size limit= 28 gigabytes
Node: 1warning = 0 kilobytes
Jobtype: T1
Per-proc. perm file size limit= UNLIMITED
Rerunnable: Yes
warning = 0 kilobytes
Performance information: Yes
Per-proc. memory size limit= 28 gigabytes
Shell: None
Per-req. memory size limit= 28 gigabytes
Account name: f
Per-proc. stack size limit= 2 gigabytes
Qsub at: /nfs/all/t00004

 qsub-N 2 -q debug◦◦◦qscript◦ qstat -f

 qsub-q tutorialenv|sort; sleep 30

 qscript
 qstat-f

STDIN.o??????

◦

-N

-J◦






◦


#include <stdio.h>
int main(int argc, char** argv) {printf("Hello, world!¥n");return 0;}
hello: hello.c
gcc -o hello hello.c◦
$ make hello
gcc -o hello hello.c$ make hello
make: `hello' is up to date.

◦ make◦◦◦make X
#include <stdio.h>$ makevoid hello(void) {gcc -c hello.c
printf("Hello, world!¥n");gcc -c main.c}
gcc -o hello hello.o main.ovoid hello(void);
int main(int argc, char** argv) { hello();: world!
world!!
return 0;}
hello: hello.o main.ogcc -o hello hello.o main.ohello.o: hello.c
gcc -c hello.c$ makemain.o: main.c
gcc -c hello.c
gcc -c main.c
gcc -o hello hello.o main.o



◦



module1.o: module1.c common.hgcc -o module1.o module1.c -cmodule2.o: module2.c common.hgcc -o module2.o module2.c -cmodule3.o: module3.c common.hgcc -o module3.o module3.c -ca.out: module1.o module2.o module3.o
gcc -o a.out module1.o module2.o module3.ocommon.h
module1.c
module2.c
module3.c

module1.omodule2.omodule3.oa.out$ make -f test.mk

hello: hello.o main.ogcc -g -Wall -O3 ¥-o hello hello.o main.o
.PHONY: clean
clean:(cleanrm –f hello hello.o main.o$ make –C hello2 target(cd hello2; make target)) .PHONY:Xmake XOBJECTS=main.o hello.ohello: $(OBJECTS)${OBJECTS}$OBJECTSCFLAGS=$(INCLUDES) -O -g
INCLUDES=-Idir1 -Idir2
CFLAGS-Idir1 -Idir2 -O -g$(O)BJECTStest1:@echo Test message
test2:-rm file1 file2 file3

hello: $(OBJECTS)
ifeq ($(CC),gcc)$(CC) -o hello $(OBJECTS) $(LIBS_FOR_GCC)
else$(CC) -o hello $(OBJECTS) $(LIBS_FOR_OTHERCC)
endififeq ($(CC),gcc)
LIBS=$(LIBS_FOR_GCC)
else
LIBS=$(LIBS_FOR_OTHERCC)
endif
◦



VALUE=$(subst xx,yy,aaxxbb)

VALUE aayybb

CONTENTS=$(shell cat data.txt) CONTENTS

data.txt

SECOND=$(word 2, This is a pen) SECOND=is
CDR=$(wordlist 2,$(words $(LIST)), $(LIST))
CDR$LIST 2

◦
◦◦



hello: hello.o main.ogcc -o hello ¥hello.o main.o
hello.o: hello.c
gcc -c hello.c
main.o: main.c
gcc -c main.c

CC=gccOBJECTS=hello.o main.o
hello: $(OBJECTS)$(CC) -o $@ $+hello.o: hello.c$(CC) -c $<main.o: main.c$(CC) -c $<%.o : %.c$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@◦hello: hello.o main.ogcc -o hello hello.o main.o
hello.o: hello.cgcc -c hello.c
main.o: main.cgcc -c main.c

CC=gccOBJECTS=hello.o main.o
hello: $(OBJECTS)$(CC) -o $@ $+%.o: %.c$(CC) -c $<DATE1 = $(shell date)
DATE2 := $(shell date)
DATE3 = `date`
◦
◦
◦◦


◦
◦

DATE1 DATE2,DATE3
2 echotest:echo $(DATE1)
sleep 1echo $(DATE1)
 DATE1,DATE2 DATE4◦:= `date`◦◦◦◦◦◦◦ make-j◦◦

all: a b
a: a.c$(CC) a.c -o ab: b.c$(CC) b.c -o b-j make-j◦◦◦ make

◦



◦

-j



all: 1.out 2.out
1.out:sleep 1; echo Hello > 1.out
2.out: 1.out
cat 1.out > 2.out

all: a b
a: a.c.gz
gzip -dc < a.c.gz > tmp.c$(CC) tmp.c -o ab: b.c.gz
gzip -dc < b.c.gz > tmp.c$(CC) tmp.c -o bFILE_IDS := $(shell seq 1 10)
FILES:= $(FILE_IDS:%=%.dat)
all: $(FILES)%.dat:
sleep 5touch $@◦◦ makemake -j





◦
◦
◦



◦
◦


http://www.logos.t.u-tokyo.ac.jp/gxp
http://sourceforge.net/projects/gxp
$ cd /nfs/all/$USER$ cvs -d ¥:pserver:anonymous@gxp.cvs.sourceforge.net:/cvsroot/gxp ¥co gxp3
/opt/itc/gxp3



◦


◦


◦SH

RSH

RSH
SSH
TORQUERSHRSH

#@$-N 4#@$-J T1NODES=`qstat -f $PBS_JOBID|grep Node:|awk '{print$2}'`

gxpc --root_target_name headgxpc use torque_psched head node
gxpc explore node[[1--$NODES]]

cd $QSUB_WORKDIR
gxpc cd `pwd`gxpc e 'echo $GXPC_EXEC_IDX `hostname`'gxpc quit#@$-N 4#@$-J T1
. /opt/itc/bin/ha8000_gxp.sh
cd $QSUB_WORKDIR
gxpc cd `pwd`gxpc e 'echo $GXPC_EXEC_IDX `hostname`'gxpc quit

◦
◦


◦

#@$-N 4#@$-J T1
cd $QSUB_WORKDIR. /opt/itc/bin/ha8000_gxp.sh

gxpc cd `pwd`
gxpc make -jgxpc quit


◦
◦◦


◦
◦

(0010203040506050100150)
200

250300(0010203040506050100150)
200

250300(0010203040506050100150)
200

250300



◦


◦
◦


◦




◦
parameters:=a b c
a:=1 2b:=3 4 5c:=6 7 8 9target:=baz
output=hoge.$(a).$(b).$(c)cmd=expr $(a) + $(b) + $(c) > hoge.$(a).$(b).$(c)include $(GXP_MAKE_PP)



◦



◦
◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦
input:=foooutput:=bar
mapper:=ex_word_count_mapper
reducer:=ex_count_reducer
n_mappers:=5
n_reducers:=3
include $(GXP_MAKE_MAPRED)◦◦◦◦