20150330

1. 영어 기사 읽기
1) See Movement Better by Bicarb, Scientific American
2) Obama battles ‘superbugs’ with national plan, CNN


2. MARSS 이미지에서 CR3 레지스터 값을 쉽게 읽어내기
create_checkpoints.py 스크립트를 사용해 체크포인트를 생성할 때, 네트워크가 되지 않아 편리하게 CR3 레지스터의 값을 읽어내지 못함. 이를 해결하면 CR3 레지스터 값을 이메일로 보낼수 있다. stop_services.py에서 network-manager를 멈추는 바람에 생긴 문제였다. network-manager를 멈추지 않으면 네트워킹이 가능하고, CR3 레지스터의 값도 메일로 전송할 수 있다.


3. SPEC CPU 2006 Makefile 수정하기
Fortran으로 짜여진 SPEC CPU 2006 워크로드에서 sync_all_processes() 함수 호출하지 못했었다(2015/03/27). SPEC CPU 2006 manual에 “No, you can’t write your own makefiles.”라고 쓰여 있어서 SPEC CPU 2006에서 Makefile을 수정하지 못하는 것으로 오해함. 이 문제에 대해 교수님과 창현이 형께 말씀드림. 창현이 형께서 SPEC CPU 2006의 다른 manual을 보내주셨고, 이것으로 문제를 해결함.
나는 Fortran으로 짜여진 프로그램에 sync_all_processes_fortran.cpp를 추가해야 했다. 다음 순서로 snyc_all_processes_fortran.cpp 파일을 소스 코드에 추가하고 함수를 호출할 수 있었다.
1) sync_all_processes_fortran.cpp를 소스 코드 디렉토리에 추가한다.
2) Makefile 생성
– 다음 명령어로 bwaves의 Makefile을 생성할 수 있음.

$runspec --fake --loose --tune base --config linux64-amd64-gcc42.cfg bwaves
...
Success: 1x410.bwaves
The log for this run is in /home/gumdaeng/tmp/SPECCPU2006Src/result/CPU2006.415.log
runspec finished at Mon Mar 30 22:08:09 2015; 35 total seconds elapsed

– log 파일을 읽어 Makefile의 위치를 확인

runspec started at Mon Mar 30 22:07:34 2015 on "gumdaeng"
runspec is: /home/gumdaeng/tmp/SPECCPU2006Src/bin/runspec
runspec: runspec --fake --loose --tune base --config linux64-amd64-gcc42.cfg bwaves

Locating benchmarks...found 31 benchmarks in 12 benchsets.
Locating output formats: ASCII, config, CSV, flags, HTML, mail, PDF, PostScript, raw, Screen, Submission Check

=============================================================================
Warning:  You appear to be using one of the config files that is supplied
with the SPEC CPU2006 distribution.  This can be a fine way to get started.

Each config file was developed for a specific combination of compiler / OS /
hardware.  If your platform uses different versions of the software or
hardware listed, or operates in a different mode (e.g. 32- vs. 64-bit mode),
there is the possibility that this configuration file may not work as-is. If
problems arise please see the technical support file at

  http://www.spec.org/cpu2006/Docs/techsupport.html

A more recent config file for your platform may be among result submissions at

  http://www.spec.org/cpu2006/ 

Generally, issues with compilation should be directed to the compiler vendor.
You can find hints about how to debug problems by looking at the section on
"Troubleshooting" in
  http://www.spec.org/cpu2006/Docs/config.html

This warning will go away if you rename your config file to something other
than one of the names of the presupplied config files.

==================== The run will continue in 30 seconds ====================
Reading config file '/home/gumdaeng/tmp/SPECCPU2006Src/config/linux64-amd64-gcc42.cfg'
Verbosity = 5 
Action    = validate
Tune      = base
Ext       = amd64-m64-gcc42-nn
Size      = ref 
Machine   = default
benchmarks= 410.bwaves
outputs   = raw,flags,ASCII,PDF,Screen
username  = gumdaeng
Benchmarks selected: 410.bwaves

%% You have selected --fake: commands will be echoed but not actually
%% executed.  (You can search for  to find the beginning and end 
%% of each command section.)

Compiling Binaries

------------------------------------------------------------------------
  Building 410.bwaves ref base amd64-m64-gcc42-nn default: (build_base_amd64-m64-gcc42-nn.0000)
Wrote to makefile '/home/gumdaeng/tmp/SPECCPU2006Src/benchspec/CPU2006/410.bwaves/run/build_base_amd64-m64-gcc42-nn.0000/Makefile.deps':

– Makefile은 ./benchspec/CPU2006/410.bwaves/run/build_base_amd64-m64-gcc42-nn.0000/Makefile.spec임을 확인.
3) Makefile에 sync_all_processes_fortran.cpp 추가
– Makefile의 SOURCES에 소스를 추가한다.

TUNE=base
EXT=amd64-m64-gcc42-nn
NUMBER=410
NAME=bwaves
SOURCES= block_solver.f flow_lam.f flux_lam.f jacobian_lam.f shell_lam.f
EXEBASE=bwaves
NEED_MATH=
BENCHLANG=F77
ONESTEP=
F77ONESTEP=

CC               = /usr/bin/gcc
COPTIMIZE        = -O2 
CXX              = /usr/bin/g++
CXXOPTIMIZE      = -O2 
FC               = /usr/bin/gfortran
FOPTIMIZE        = -O2 
FPBASE           = yes 
OS               = unix
PORTABILITY      = -DSPEC_CPU_LP64
action           = validate
allow_extension_override = 0 
backup_config    = 1 
baseexe          = bwaves

4) 해당 디렉토리에서 make 명령어로 빌드


4. snyc_all_processes() 호출하도록 SPEC CPU 2006 빌드
1) 소스 코드 복사
– ./benchspec/CPU2006/benchmark_name/src 아래에 소스 코드를 복사함.
– C 워크로드는 sem_helper.c, sync_all_processes.h를 추가함.
– Fortran 워크로드는 sync_all_processes_fortran.cpp를 추가함.
2) 필요한 지점에 sync_all_processes() 호출
3) 빌드
runspec을 사용해 빌드 가능한 것을 빌드하고, 에러가 발생하는 워크로드는 따로 빌드함.

$runspec --config=linux64-amd64-gcc42.cfg --action=build --tune=base int
$runspec --config=linux64-amd64-gcc42.cfg --action=build --tune=base fp

INT 워크로드는 모두 성공적으로 빌드함.
FP 워크로드는 일부에서 에러 발생. 아래는 에러가 발생한 워크로드의 목록

410.bwaves(base), 416.gamess(base), 434.zeusmp(base), 436.cactusADM(base), 437.leslie3d(base), 454.calculix(base), 459.GemsFDTD(base), 465.tonto(base), 481.wrf(base)

5. Scientific Writing
– 어떤 것을 일반적으로 이야기할 때에는 복수형으로 이야기한다. (such as sedan, SUV, and hatchback -> such as sedans, SUVs, and hatchbacks)
– 과거형은 이미 끝난 사건을 표현할 때 쓴다. 현재까지 이어져오는 상황이면 현재완료를 쓴다. ( layered materials attracted considerable attention -> layered materials have attracted considerable attention)
– because, since 앞에는 comma를 쓰지 않는다.

Advertisements
Tagged with: , , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Recent Posts
누적 방문자 수
  • 146,251 hits
%d bloggers like this: