20150422

1. 영어 기사 읽기
1) Google’s ‘Mobilegeddon’ – 5 Fast Facts, CNN
2) How ISIS controls life, from birth to foosball, CNN


2. gem5 simulator
논문을 읽다가, 각 논문에서 어떤 simulator를 쓰는지 찾아보았다. gem5Graphite이라는 simulator를 많이 사용하고 있었다. gem5는 725회 인용될 정도로 매우 활발하게 쓰이는 simulator이고, Graphite은 수백, 수천개의 코어를 시뮬레이션하는 것을 목적으로 설계된 simulator라는 점이 특징이다. Graphite는 동시에 여러 호스트, 그리고 프로세스에서 simulation을 할 수 있다는 점이 특징이다. Graphite을 사용하는 방법이 더 궁금했으나, gem5가 더 많이 쓰이는 듯 하여 gem5의 사용법을 확인해보았다.

gem5를 빌드할 때, tcmalloc을 설치하면 12%의 성능 향상을 얻을 수 있다.

$scons build/ARM/gem5.opt    
...
Checking for timer_create(CLOCK_MONOTONIC, NULL, NULL) in C library rt... (cached) yes
Checking for C library tcmalloc... (cached) no
Checking for C library tcmalloc_minimal... (cached) no
You can get a 12% performance improvement by installing tcmalloc (libgoogle-perftools-dev package on Ubuntu or RedHat).
Checking for C header file fenv.h... (cached) yes
Checking for C header file linux/kvm.h... (cached) yes
Checking size of struct kvm_xsave ... (cached) yes
...

다음 명령어로 tcmalloc을 설치할 수 있다.

$sudo apt-get install libgoogle-perftools-dev 

디스크 이미지를 생성하고 벤치마크를 세팅하는 방법, 체크포인트를 생성하는 방법, 실행하는 방법, 소스 코드의 구성 모두 몰라서 헤매는 중이다. gem5의 사용자 수가 더 많고, 소스 코드 관리도 더 잘 되는 것 같지만 full system simulation이 MARSS보다 직관적이지 못하다는 느낌이다. 그래도 잘 파악한다면 더 쉬울 것 같다. MARSS에서도 커널만 따로 수정할 수 있다고 하고 있으나, 실제로는 그렇지 않다. 하지만 gem5에서는 커널과 파일 시스템을 따로 관리하므로, 커널을 수정하기가 훨씬 쉬울 것으로 보인다.

gem5를 빌드하는 방법은 이전에 확인한 적이 있다 (2014/07/27). system call emulation만 확인한 다음, 그 이상은 확인해보지 않았다.

디스크 이미지는 ./util/gem5img.py를 사용해 생성할 수 있으나, 이를 사용하면 큰 크기의 이미지는 생성할 수 없다 (7G 정도 크기의 이미지 생성 가능). dd 명령어를 사용해 디스크 이미지를 생성하는 방법을 테스트하는 중이다.

$dd of=mydisk.img bs=1 seek=10G count=0

dd 명령어를 사용해 디스크 이미지를 생성한 다음, ext2 형식으로 포맷한다. 그리고 이를 마운트한다. 이미지에 ubuntu core를 설치한다[4]. 그리고 chroot를 사용해 마운트한 위치로 root의 위치를 바꾼 다음에, apt-get update / install로 필요한 것들을 설치한다. 하지만 지금 문제점은 이렇게 만든 이미지가 gem5에서 제대로 동작하지 않는다는 것이다. dd로 이미지를 생성하면 안 되거나, 아니면 포맷을 다른 방식으로 해야 할 것 같다.

태훈이 형에게 Graphite simulator가 있음을 이야기해드렸고, 메모리 모델이 잘 simulation되는지 궁금해하셨다. Memory model이 제대로 되어있다면 이렇게 많은 코어를 simulation하는 것이 무리일 것이라 이야기하셨다.

References :
[1] Ubuntu Disk Image for ARM Full System, gem5, http://www.m5sim.org/Ubuntu_Disk_Image_for_ARM_Full_System
[2] Hao Wu, Create large disk, http://comments.gmane.org/gmane.comp.emulators.m5.users/16781
[3] Creating Arch Linux disk image, archlinux, https://wiki.archlinux.org/index.php/Creating_Arch_Linux_disk_image
[4] Ubuntu Core 14.10 (Utopic Unicorn), http://cdimage.ubuntu.com/ubuntu-core/releases/14.10/release/
[5] after chroot: apt-get update (Err and Failed to fetch – BootableFlashFromHarddiskInstall), askubuntu, http://askubuntu.com/questions/590354/after-chroot-apt-get-update-err-and-failed-to-fetch-bootableflashfromharddis

Advertisements
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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

누적 방문자 수
  • 91,281 hits
%d bloggers like this: