20150123

1. 영어 기사 읽기
1) The Pros and Cons of Doing One Thing at a Time, HBR
– It goes against my ingrained task-juggling habit, which I’ve come to believe is why I can hit my multiple, ever-changing deadlines. (ingrained – 습관, 태도 등이 몸에 깊이 밴)
– That way my paintings don’t become rote (rote – 암기에 의한)
2) Hands on with Microsoft’s HoloLens, CNN
– HoloLens is Microsoft’s foray into the virtual reality market. (foray – 습격)
– The single wiggle of an index finger can drop a flag on the surface of Mars or select a color for your 3-D sculpture. (wiggle – 꼼지락거림)
– After an on-stage demonstration of the sleek, wraparound black glasses, Microsoft gave reporters four hands-on demos of the device at its Redmond, Washington headquarters. (sleek – 매끈한, 윤이 나는, 2014/08/10, wraparound – 끝이 휘어진)
– At NASA’s Jet Propulsion Laboratory, scientists regularly dig through images of Mars collected by the Curiosity Rover. (propulsion – 추진, 추진력)
– But VR has been anointed the next big thing by a tech industry hungry for something fresh and exciting to woo customers. (anoint – 성수를 바르다, woo – 구애하다)


2. MARSS 디버깅
cacloud01에서와 내 컴퓨터에서 발생하는 에러가 다른 것 같아, 이를 확인하는 실험 중.


3. 실험 환경 준비 중
1) 정섭이 형의 코드와 내가 수정한 코드의 IPC 유사성 비교
실험 시작한지 1주일이 다 되어가는데 끝나지 않는다. 내가 수정한 코드의 실행에 시간이 오래 걸린다. 2 billion 실험을 해서 더 오래 걸리는 것 같기도 하다. 다음부터는 조금 더 분산해서 실험해야겠다.

2) 정섭이 형이 만든 이미지와 내가 만든 이미지의 실험 결과 비교
벤치마크의 warm up 시간을 정섭이 형이 한 것과 같게 해보았지만, 실험 결과가 달랐다. Warm up 시간의 차이가 IPC 차이에 큰 영향을 주지 않았다. 정섭이 형에게 확인해보니, 커널 컴파일을 다시 했다고 하심. Tick을 100MHz에서 1000MHz로 바꾸었다고 함. runspec으로 실행하는 것과 아닌 것, 벤치마크 빌드 옵션 등도 실험 결과에 영향을 미칠 것 같다.

3) 여러 컴퓨터에서 동시에 실험 가능하도록 실험 환경 구축
linux에서 usermod 명령어로 사용자 아이디를 변경할 수 있다.(Linux change or rename user name and UID (user-id), nixCraft, http://www.cyberciti.biz/faq/howto-change-rename-user-name-id/) Raspberry pi의 아이디를 바꾸었다.

$usermod -l gumdaeng pi

내 컴퓨터의 public key를 다른 컴퓨터의 authorized_keys에 등록함으로써 비밀번호 입력 없이 ssh 접속 가능하다. ssh-keygen 명령어를 사용해 ssh key를 생성할 수 있다. (SSH Key – 비밀번호 없이 로그인, http://jjaiwook79.blog.me/30187111478)

$ssh-keygen -t rsa

기본적으로 ~/.ssh/ 아래에 파일이 생성되며, id_rsa.pub를 다른 컴퓨터의 ~/.ssh/authorized_keys에 등록하면 된다. cacloud에 내 id_rsa.pub를 등록하고자 명령어를 병렬로 실행하는 파이썬 코드를 만듦.

#!/usr/bin/python
import sys
import threading 
import pxssh

special_cmds = ['help', 'print_hosts', 'add_host', 'del_host', 'del_all']
remote_hosts = [
                ['cacloud01.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud02.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud03.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud04.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud05.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud06.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud07.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud08.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud09.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud11.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud12.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud13.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud15.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud17.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud18.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud19.kaist.ac.kr', 22, 'userid', 'passwd'],
                ['cacloud20.kaist.ac.kr', 22, 'userid', 'passwd']
               ]

def handle_special_cmd(cmd):
    if cmd == "help":
        print_help_msg()
    elif cmd == "print_hosts":
        print_hosts()
    elif cmd == "add_host":
        add_host()
    elif cmd == "del_host":
        del_host()
    elif cmd == "del_all":
        del_all()

def print_help_msg():
    print "Special Commands : ",
    for cmd in special_cmds:
        print cmd,
    print ""

def print_hosts():
    global remote_hosts
    for host in remote_hosts:
        hostname = host[0]
        port     = str(host[1])
        userid   = host[2]
        passwd   = host[3]
        print "%s %s %s %s" % (hostname, port, userid, passwd)

def add_host():
    global remote_hosts
    hostname = raw_input("Hostname : ")
    port     = int(raw_input("Port Number : "))
    userid   = raw_input("ID : ")
    passwd   = raw_input("Password : ")
    host     = [hostname, port, userid, passwd]
    remote_hosts.append(host)

def del_host():
    global remote_hosts
    hostname = raw_input("Hostname : ")
    for host in remote_hosts:
        if host[0] == hostname:
            remote_hosts.remove(host)
            
def del_all():
    global remote_hosts
    remote_hosts = []

def parallel_execute(cmd):
    threads = []
    for host in remote_hosts:
        try:
            t = threading.Thread(target=execute, args=(host, cmd))
            t.start()
            threads.append(t)
        except:
            print "Can't create a new thread"
    for t in threads:
        t.join()

def execute(host, cmd):
    hostname = host[0]
    port     = str(host[1])
    userid   = host[2]
    passwd   = host[3]

    conn = pxssh.pxssh()
    conn.login(hostname, userid, passwd, port=port)
    conn.sendline(cmd)
    conn.prompt()
    print "%s\r\n%s" % (hostname, conn.before)

    conn.logout()

while True:
    cmd = raw_input("(parallel-cmd) ")
    if cmd in special_cmds:
        handle_special_cmd(cmd)
    elif cmd == "exit":
        sys.exit()
    else:
        parallel_execute(cmd)

pssh와 같은 툴도 있다고 하니, 한 번 써봐야겠다.

Advertisements
Posted in 1) Memo
2 comments on “20150123
  1. […] 결과, 접속하고자 하는 host들에 key를 등록해 사용하는 것이 편리하다. 어제 내가 만든 툴을 사용해 동시에 key를 등록할 수 […]

  2. […] 없는 듯 하다. 문제는 MARSS 이미지에 있는 것 같다. 이전에 MARSS 이미지에서 오차가 발생한 것이 tick rate를 수정하지 않아서라고 추정하고 이를 수정함. 벤치마크 컴파일할 때 옵션이 달라서 IPC가 […]

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

누적 방문자 수
  • 90,796 hits
%d bloggers like this: