Sei sulla pagina 1di 22

Asignatura:

Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

Ambiente:
Sistema operativo: Linux Centos 6,4

export PIN_ROOT=/opt/pin
export PATH=$PIN_ROOT:$PATH
Ejecucin de PIN:
lguevara@cmlsvr01 pin]$ pin.sh

/opt/pin/pin.sh: lnea 14: /opt/pin/source/tools/testGccVersion: No existe el


fichero o el directorio

/opt/pin/pin.sh: lnea 14: [: -eq: se esperaba un operador unario

E: Missing application name

Pin 2.13

Copyright (c) 2003-2013, Intel Corporation. All rights reserved.

VERSION: 61147 BUILDER: BUILDER DATE: Sep 4 2013

Usage: pin [OPTION] [-t <tool> [<toolargs>]] -- <command line>

Use -help for a description of options

Luis Carlos Guevara Villalobos

Pgina 1 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

Compilacin de los paquetes:


cd ManualExamples/

[lguevara@cmlsvr01 ManualExamples]$ ls

buffer_linux.cpp
proccount.cpp

buffer_windows.cpp
replacesigprobed.cpp

fibonacci.cpp
inscount0.cpp
statica.cpp

little_malloc.c

follow_child_app1.cpp inscount1.cpp
staticcount.cpp

makefile

countreps.cpp
follow_child_app2.cpp inscount2.cpp
makefile.rules safecopy.cpp
strace.cpp

detach.cpp
follow_child_tool.cpp inscount_tls.cpp malloc_mt.cpp
stack-debugger.cpp
thread_unix.c

divide_by_zero_linux.c fork_app.cpp
invocation.cpp
malloctrace.cpp stack-debugger-tutorial.sln
thread_win.c

divide_by_zero_windows.c fork_jit_tool.cpp
isampling.cpp
nonstatica.cpp stack-debugger-tutorial.vcxproj
w_malloctrace.cpp

emudiv.cpp
imageload.cpp
stack-debugger-tutorial.vcxproj.filters

itrace.cpp

pinatrace.cpp

[lguevara@cmlsvr01 ManualExamples]$ make all

Luis Carlos Guevara Villalobos

Pgina 2 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

mkdir -p obj-intel64

g++ -DTARGET_IA32E -DHOST_IA32E


-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O3 -o obj-intel64/fibonacci
fibonacci.cpp -Wl,--as-needed -lm -ldl -lpthread

cc -DTARGET_IA32E -DHOST_IA32E
-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O3 -o obj-intel64/little_malloc
little_malloc.c -Wl,--as-needed -lm -ldl -lpthread

cc -DTARGET_IA32E -DHOST_IA32E
-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O3 -o obj-intel64/thread_app
thread_unix.c -Wl,--as-needed -lm -ldl -lpthread

g++ -DTARGET_IA32E -DHOST_IA32E


-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O3 -o obj-intel64/fork_app
fork_app.cpp -Wl,--as-needed -lm -ldl -lpthread

g++ -DTARGET_IA32E -DHOST_IA32E


-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O3 -o objintel64/follow_child_app1 follow_child_app1.cpp -Wl,--as-needed -lm -ldl
Luis Carlos Guevara Villalobos

Pgina 3 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

-lpthread

g++ -DTARGET_IA32E -DHOST_IA32E


-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O3 -o objintel64/follow_child_app2 follow_child_app2.cpp -Wl,--as-needed -lm -ldl
-lpthread

cc -DTARGET_IA32E -DHOST_IA32E
-DFUND_TC_TARGETCPU=FUND_CPU_INTEL64
-DFUND_TC_HOSTCPU=FUND_CPU_INTEL64 -DTARGET_LINUX
-DFUND_TC_TARGETOS=FUND_OS_LINUX
-DFUND_TC_HOSTOS=FUND_OS_LINUX -O0 -o obj-intel64/divide_by_zero
divide_by_zero_linux.c -Wl,--as-needed -lm -ldl -lpthread

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/inscount0.o
inscount0.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/inscount0.so


obj-intel64/inscount0.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
Luis Carlos Guevara Villalobos

Pgina 4 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/inscount1.o


inscount1.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/inscount1.so


obj-intel64/inscount1.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/inscount2.o
inscount2.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/inscount2.so


obj-intel64/inscount2.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/proccount.o
proccount.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionLuis Carlos Guevara Villalobos

Pgina 5 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

script=../../../source/include/pin/pintool.ver -o obj-intel64/proccount.so
obj-intel64/proccount.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/imageload.o
imageload.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/imageload.so


obj-intel64/imageload.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/staticcount.o
staticcount.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/staticcount.so


obj-intel64/staticcount.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -WnoLuis Carlos Guevara Villalobos

Pgina 6 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

unknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/detach.o detach.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/detach.so objintel64/detach.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/malloctrace.o
malloctrace.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/malloctrace.so


obj-intel64/malloctrace.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/malloc_mt.o
malloc_mt.cpp

Luis Carlos Guevara Villalobos

Pgina 7 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/malloc_mt.so


obj-intel64/malloc_mt.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/inscount_tls.o
inscount_tls.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/inscount_tls.so


obj-intel64/inscount_tls.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/stack-debugger.o stackdebugger.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/stackdebugger.so obj-intel64/stack-debugger.o -L../../../intel64/runtime/cpplibs


-L../../../intel64/lib -L../../../intel64/lib-ext -L../../../intel64/runtime/glibc
-L../../../extras/xed2-intel64/lib -lpin -lxed -ldwarf -lelf -ldl

Luis Carlos Guevara Villalobos

Pgina 8 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/pinatrace.o
pinatrace.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/pinatrace.so objintel64/pinatrace.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/itrace.o itrace.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/itrace.so objintel64/itrace.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/isampling.o

Luis Carlos Guevara Villalobos

Pgina 9 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

isampling.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/isampling.so


obj-intel64/isampling.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/safecopy.o safecopy.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/safecopy.so objintel64/safecopy.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/invocation.o
invocation.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/invocation.so


obj-intel64/invocation.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2Luis Carlos Guevara Villalobos

Pgina 10 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/countreps.o
countreps.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/countreps.so


obj-intel64/countreps.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/nonstatica.o
nonstatica.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/nonstatica.so


obj-intel64/nonstatica.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
Luis Carlos Guevara Villalobos

Pgina 11 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/buffer_linux.o


buffer_linux.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/buffer_linux.so


obj-intel64/buffer_linux.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/fork_jit_tool.o
fork_jit_tool.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/fork_jit_tool.so


obj-intel64/fork_jit_tool.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/follow_child_tool.o
follow_child_tool.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionLuis Carlos Guevara Villalobos

Pgina 12 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

script=../../../source/include/pin/pintool.ver -o objintel64/follow_child_tool.so obj-intel64/follow_child_tool.o


-L../../../intel64/runtime/cpplibs -L../../../intel64/lib -L../../../intel64/lib-ext
-L../../../intel64/runtime/glibc -L../../../extras/xed2-intel64/lib -lpin -lxed
-ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/strace.o strace.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/strace.so objintel64/strace.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


-fPIC -DTARGET_LINUX -I../../../source/include/pin
-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/emudiv.o emudiv.cpp

g++ -shared -Wl,--hash-style=sysv -Wl,rpath=../../../intel64/runtime/cpplibs -Wl,-Bsymbolic -Wl,--versionscript=../../../source/include/pin/pintool.ver -o obj-intel64/emudiv.so objintel64/emudiv.o -L../../../intel64/runtime/cpplibs -L../../../intel64/lib
-L../../../intel64/lib-ext -L../../../intel64/runtime/glibc -L../../../extras/xed2intel64/lib -lpin -lxed -ldwarf -lelf -ldl

g++ -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -Wall -Werror -Wnounknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E


Luis Carlos Guevara Villalobos

Pgina 13 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

-fPIC -DTARGET_LINUX -I../../../source/include/pin


-I../../../source/include/pin/gen -I../../../extras/components/include
-I../../../extras/xed2-intel64/include -I../../../source/tools/InstLib -O3 -fomitframe-pointer -fno-strict-aliasing -c -o obj-intel64/statica.o statica.cpp

g++ -Wl,--hash-style=sysv -Wl,-rpath=../../../intel64/runtime/cpplibs -Wl,Bsymbolic -o obj-intel64/statica obj-intel64/statica.o


-L../../../intel64/runtime/cpplibs -L../../../intel64/lib -L../../../intel64/lib-ext
-L../../../extras/xed2-intel64/lib -lsapin -lxed -Wl,-Bstatic -ldwarf -lelf -Wl,Bdynamic -ldl

Prueba de las libreras anteriores:


[lguevara@cmlsvr01 pin]$ pin -t
/opt/pin/source/tools/ManualExamples/obj-intel64/inscount1.so -/sbin/ifconfig

eth0

Link encap:Ethernet HWaddr 00:27:0E:09:FE:9D

inet addr:192.168.1.65 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::227:eff:fe09:fe9d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Luis Carlos Guevara Villalobos

Pgina 14 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

RX packets:37675101 errors:0 dropped:0 overruns:0 frame:0

TX packets:22785725 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:50476702003 (47.0 GiB) TX bytes:2005744199 (1.8 GiB)

Interrupt:20 Memory:fb200000-fb220000

eth1

Link encap:Ethernet HWaddr 00:A0:CC:5C:68:61

inet addr:192.168.90.1 Bcast:192.168.90.255


Mask:255.255.255.0
inet6 addr: fe80::2a0:ccff:fe5c:6861/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25284841 errors:1 dropped:0 overruns:0 frame:0
TX packets:38991124 errors:10 dropped:0 overruns:3 carrier:7
collisions:0 txqueuelen:1000
RX bytes:2928080459 (2.7 GiB) TX bytes:47056622025 (43.8 GiB)
Interrupt:21
lo

Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host

Luis Carlos Guevara Villalobos

Pgina 15 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

UP LOOPBACK RUNNING MTU:16436 Metric:1


RX packets:973457 errors:0 dropped:0 overruns:0 frame:0
TX packets:973457 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4314233256 (4.0 GiB) TX bytes:4314233256 (4.0 GiB)
virbr0

Link encap:Ethernet HWaddr 52:54:00:AA:24:FF

inet addr:192.168.122.1 Bcast:192.168.122.255


Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:184 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:21252 (20.7 KiB)

Libreras disponibles de entrada:


ls -1 /opt/pin/source/tools/ManualExamples/obj-intel64/*.so
/opt/pin/source/tools/ManualExamples/obj-intel64/buffer_linux.so
/opt/pin/source/tools/ManualExamples/obj-intel64/countreps.so
/opt/pin/source/tools/ManualExamples/obj-intel64/detach.so
/opt/pin/source/tools/ManualExamples/obj-intel64/emudiv.so
/opt/pin/source/tools/ManualExamples/obj-intel64/follow_child_tool.so
/opt/pin/source/tools/ManualExamples/obj-intel64/fork_jit_tool.so
/opt/pin/source/tools/ManualExamples/obj-intel64/imageload.so
/opt/pin/source/tools/ManualExamples/obj-intel64/inscount0.so

Luis Carlos Guevara Villalobos

Pgina 16 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

/opt/pin/source/tools/ManualExamples/obj-intel64/inscount1.so
/opt/pin/source/tools/ManualExamples/obj-intel64/inscount2.so
/opt/pin/source/tools/ManualExamples/obj-intel64/inscount_tls.so
/opt/pin/source/tools/ManualExamples/obj-intel64/invocation.so
/opt/pin/source/tools/ManualExamples/obj-intel64/isampling.so
/opt/pin/source/tools/ManualExamples/obj-intel64/itrace.so
/opt/pin/source/tools/ManualExamples/obj-intel64/malloc_mt.so
/opt/pin/source/tools/ManualExamples/obj-intel64/malloctrace.so
/opt/pin/source/tools/ManualExamples/obj-intel64/nonstatica.so
/opt/pin/source/tools/ManualExamples/obj-intel64/pinatrace.so
/opt/pin/source/tools/ManualExamples/obj-intel64/proccount.so
/opt/pin/source/tools/ManualExamples/obj-intel64/safecopy.so
/opt/pin/source/tools/ManualExamples/obj-intel64/stack-debugger.so
/opt/pin/source/tools/ManualExamples/obj-intel64/staticcount.so
/opt/pin/source/tools/ManualExamples/obj-intel64/strace.so

Apartado 1:
Seleccin de la aplicacin
El primer objetivo de este ejercicio es encontrar una aplicacin de la cual
queramos
realizar un estudio de rendimiento. Esta aplicacin podr ser cualquiera de
vuestro
mbito de trabajo (que os sea familiar o de vuestro entorno de trabajo) o
una
aplicacin que sea nueva para vosotros. Esta tendr que ser:

Luis Carlos Guevara Villalobos

Pgina 17 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

1. Una aplicacin que sea multi-hilo. Es decir, que se pueda ejecutar con
distinto nivel de paralelismo. Para no complicaros demasiado el trabajo se
recomienda que est implementada en OpenMP o Pthreads. Si usis una
MPI
puede ser que sea ms compleja de evaluar o tengis algunos problemas
con
las PIN tolos.

2. Preferiblemente una aplicacin que permita especificar distintos


tamaos de problemas. Por ejemplo en una multiplicacin de matrices
donde
se pueda especificar las dimensiones de las matrices a multiplicar.

3. Preferiblemente
necesariamente

una

aplicacin

del

mbito

cientfico.

No

de un entorno concreto (pe: Matemticas, fsica, estadsticas, medicina


etc.)

Enunciado:
Describid la aplicacin que habis escogido: que calcula, a grandes
rasgos como esta est organizada, que parmetros o opciones tiene etc. No
es
necesario que entendis el cdigo, pero si lo que esta lleva a cabo.
Por ejemplo:
Si
esta es una transformada de Fourier, tendris que explicar lo que esta
hace, lo que
quiere resolver, como se puede paralelizar o como la ha paralelizado el
desarrollador,
Luis Carlos Guevara Villalobos

Pgina 18 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

que parmetros tiene etc.

Es muy importante remarcar que es parte del problema que el estudiante


sea capaz
de llevar a cabo esta tarea de forma autnoma. Es decir, las dudas o
problemas
(compilacin, configuracin etc.) que se encuentren tendran que ser
resueltos a
travs del dilogo con otros estudiantes, bsquedas en la red o preguntas
en foros.

Los consultores darn soporte en trminos ms generales, es decir, dudas


sobre el
enunciado, metodolgicos, de interpretacin etc. El objetivo fundamental
de la
prctica es que el estudiante entre en el mundo de la investigacin y
evaluacin de
aplicaciones HPC. El 99% de las veces, nos encontraremos solos delante
dichos
problemas. Es estas situaciones las habilidades para poder resolver
problemas de
forma autnoma sern cruciales.

Luis Carlos Guevara Villalobos

Pgina 19 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

Apartado 2:
Estudio global de la aplicacin

El segundo objetivo de este apartado ser realizar un estudio de


rendimiento de esta
aplicacin.
Bsicamente, queremos ver como esta se comporta en determinadas
configuraciones (paralelismo, tamao de problemas etc.)

Enunciado:
Especficament quer emos ver:

a) El rendimiento
paralelismo y tamao
como esta mejora o
problema. Para limitar

que esta aplicacin tiene variando el grado de


del problema. Podis usar el comando time para ver
empeora variando el nmero de hilos y tamao de
el tamao de pruebas limitaros a tres tamaos.

b) Time facilita el tiempo de ejecucin. Si podis recoger otro tipo de


informacin de esta aplicacin que no sea de tiempo de ejecucin y que
de

Luis Carlos Guevara Villalobos

Pgina 20 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

datos de rendimiento hacerlo. Que otras mtricas nos pueden interesar


para
ver como se comporta? Usadla para ver como vuestra aplicacin se
comporta.

c) La cantidad de instrucciones que esta ejecuta en cada una de las


configuraciones anteriores (aparatado a). Podis usar la PIN tool
inscount_tls
la

para recoger estos datos. Porqu creis que es necesario usar esta i no
inscount normal?

d) Conclusiones e observaciones de que podis observar de esta aplicacin


(reflexiones personales, sus caractersticas, que creis que la limita etc).

Luis Carlos Guevara Villalobos

Pgina 21 de 22

Asignatura:
Docente:
Titulo
Trabajo:

Computacin de altas prestaciones


Francesc Guim Bernat
Ivan Rodero Castro
PRA1

Ejercicio 2
Memory Simulator dArtur Klauser

Memory simulator es un simulador sencillo que se proporciona como parte


de las
pintools como ejemplo de PIN. Por un lado, este permite simular una
memoria cache
de primer nivel a travs del modelo dcache. Este permite simular algunos
de los
parmetros ms bsicos de una memoria cache. Por otro lado esta permite
simular
una jerarqua con una L1,L2 i L3 a travs del modelo allcache.
Este ltimo tiene
todos los parmetros prefijados y no son parametrizados. Con lo cual cada
vez que
los queremos canviar tendremos que recompilar la pintool.

Para compilar hay que seguir los siguientes pasos:


cesc@eimtarqso Memory]$ cd $PIN_ROOT/source/tools/Memory

[cesc@eimtarqso Memory]$ make

Luis Carlos Guevara Villalobos

Pgina 22 de 22

Potrebbero piacerti anche