티스토리 뷰

Study/Work

[work] Workload analysis

생각많은 소심남 2014. 8. 5. 01:37

지금 학교에서 다루는 연구주제가 workload pattern에 따른 효과적인 power management technique를 구현하는 것이다. 그중에서도 manycore에 초점을 맞춰서 보고 있다.



사실 개념자체는 매우 간단하다. 근본적인 개념은 단순하게 일을 열심히 하는 core한테는 그만큼 computation power를 많이 주는 것이고, 그동안 idle상태의 core는 clockgating 같은 기능을 써서 power를 덜 주게끔 하자는 것이다. 이게 곧 DVFS (Dynamic Voltage/Frequence Scaling) 이 추구하는 궁극적인 목적이 되겠다. 특히 manycore Architecture에서는 그만큼 core가 소비하는 power가 크기도 하고, 최근 부각되고 있는 green computing 추세에도 맞춰보면 이렇게 DVFS를 통한 power management가 중요해졌다. 관건은 How? 어떤 방식으로 효율적으로 관리하게 하자는데 의문이 있다. 

 지금 위의 이미지는 연구실내의 컴퓨터에서 사용자의 task에 따른 workload를 하루단위로 쪼개서 모아둔 것이다. 물론 manycore라면 cache coherence 라던지의 요인때문에 위와 같은 pattern이 나오지는 않겠지만 이렇게 모든 core가 제각각의 task를 돌면서 나타내는 work pattern이라고 가정하자. 



 일단 task 자체는 user가 통제하는 변인이기 때문에 그만큼 uncertainty가 있다. 위의 이미지처럼 하나하나씩 쪼개봐도 어떤 사람은 오전에 일을 많이 하고, 혹은 저녁에 일을 많이 하는 사람도 있다. 이럴때 효율적으로 적용할 수 있는 Power Management policy는 어떤게 있을까? 혹은 이런 케이스가 있다.



이렇게 빨간 task처럼 주기적으로 뭔가 일을 경우도 있을 것이고, 혹은



보라색 pattern처럼 잠깐잠깐 일을 하는 경우도 있을것이다. 이럴때는 어떤 policy가 좋을까?


사실 위의 예시들도 보면 알겠지만 참 난해한 문제다. user가 기계가 아닌 사람인 이상 일하다가 딴짓을 할 수도 있는것이고, 그만큼 불확실하다. 혹은 시간적인 요인도 고려해야 한다. 그게 지금 제일 헷갈리는 문제다. 뭔가 Machine learning을 쓸 수도 있고, 그에 대한 논문들도 많이 나와있다. 하지만 그것자체도 주어진 데이터가 있고, 무언가를 구분지을 Label이 있어야 하는데 지금과 같은 경우는 어떤 Label을 정의할 수가 없다. 왜냐하면 지금 위의 load pattern은 pattern 그 자체일뿐 무슨일을 하고 있는지 알길이 없기 때문이다. 그렇다고 unsupervised learning이나 reinforce learning을 하자니 거기에 대해서는 아는게 별로 없다. 

 이래서 공부가 필요하고, 다른 사람들이 어떤식으로 접근했는지 논문을 찾아볼 필요가 있는거다. 

'Study > Work' 카테고리의 다른 글

[Optimization] Opensolver 설치  (0) 2016.09.07
[Work] Single Chip Cloud  (0) 2013.04.12
[Work] Tizen 2.0 Emulator Demo  (0) 2013.03.08
[Work] VMWare 상에서 Tizen 기기 인식  (0) 2013.03.08
[Work] Tizen 2.0 Magnolia  (0) 2013.03.06
댓글