'Research'에 해당되는 글 18건
- Automotive에서 멀티코어 채용 2010/06/11
- MISRA-C : 크리티컬시스템을 위한 코딩 가이드라인 2010/04/06
- 리튬이온 배터리 충방전 기술자료 2009/02/03
- The case for energy-proportional computing 2008/11/26
- cfsm - Codesign Finite State Machine generater 2008/09/22
- 오픈소스 웹 브라우저 2008/08/13
- Intel Atom 프로세서 2008/06/28
- Optimizing Dual-Core Execution for Power Efficiency and Transient-Fault Recovery 2008/05/19
- 최적화 2008/05/16
- 좋은 분 발견 2008/05/06
Automotive에서 멀티코어 채용
MISRA-C : 크리티컬시스템을 위한 코딩 가이드라인
The case for energy-proportional computing
L. Barroso and U. Holzle, “The case for energy-proportional computing,” IEEE Computer, December 2007.
간단한 내용.
구글의 입장에서 서버의 Low power기술이 어떻게 필요한 지 설명
서버는 모바일 장치와 달리 utilization(사용율)의 비율이 100%(peak), 0%(idle)이 아닌 경우가 많고 10~50% 사이, 특별히 20~40%사이가 많음
대강의 전력 소모를 보면 utilization을 기준으로 0일 때도 power(전력)는 peak의 50%를 소모함.(녹색선)
그래서 에너지 효율성(전력을 사용율로 나눔)은 쭈욱 떨어지게 됨(빨강)
그래서 아래 그림과 같이 utilization이 0 이 될 때 전력소모가 10%정도로 잘 떨어져주면 좋겠음(결국 그래프 각도가 문제)
그러면 효율은 10~50% 사이에서 꽤 괜찮음
그러려면 CPU 말고 주변기기의 전력소모 특성이 높아야 함. 디스크는 쓸 때 안쓸 때 차이가 크지만 대책없이 sleep하면 깨어나는 시간과 전력비용이 크다든지, 네트웍 디바이스는 끄는 모드란 게 없든지 --> Active low power 모드가 필요
cfsm - Codesign Finite State Machine generater
http://www.mindrot.org/projects/cfsm/
FSM 스펙을 텍스트로 받아서 C 코드(템플릿)을 만들어주는 프로그램이랍니다.
아래와 같은 샘플 스펙 텍스트가 있을 때
이런 그래프로 나타낼 수 있는 코드를 생성해줍니다.
cvs로 다음과 같이 다운받습니다.
$ cvs -d anoncvs@anoncvs.mindrot.org/cvs checkout mtemplate cfsm |
그리고 mtemplate와 cfsm을 make
$ cd mtemplate $ make $ cd ../cfsm $ make |
그러면 cfsm 파일도 생기고 기본적인 테스트도 돌립니다.
테스트로 만든 소스는 cfsm/regression에 있습니다.
C코드를 생성하려면 다음과 같이 하면 됩니다.(-d 옵션)
$ ../cfsm -t.. -d -o t_ex0_fsm.c ../example.fsm |
만일 스테이트 다이어그램 그림으로 만들어보고 싶으면(graphviz가 깔려있어야 함)
$ cd cfsm/regression $ ../cfsm -t.. -g -o t_ex0_fsm.dot ../example.fsm $ dot -Tjpg t_ex0_fsm.dot -o t_ex0_fsm.jpg |
이런식으로 합니다.
# This file is in the public domain # $Id: t1_fsm.fsm,v 1.4 2007/11/18 09:51:19 djm Exp $ precondition-function-args new-state state T1 |
이런 간단한 스펙을 바꾸면,
...생략 |
이런 코드가 생기고,
이런 그림으로 나타낼 수 있게 그래프 파일도 생성 됩니다.
Usage: cfsm [-h] [-HCD] [-o output-file] fsm-file |
오픈소스 웹 브라우저
소스가 가벼운 웹 브라우저 어플리케이션을 찾아보기로 했습니다.
병렬화 이슈를 찾아보고 풀브라우징 되는 어플이 있으면 주제로 삼으려고
찾아본 것들
- dillo
gtk1.2 써서 컴파일해야함
데비안 패치 해야 프레임 지원 켜짐.
비교적 빠른 편, 탭 브라우징도 지원
CSS 지원이 완벽하지 않고 플래시, 동영상 지원 안됨
$ apt-cache depends dillo
dillo
의존: libc6
의존: libfontconfig1
의존: libfreetype6
의존: libgcc1
의존: libglib1.2ldbl
의존: libgtk1.2
의존: libjpeg62
의존: libpng12-0
의존: libssl0.9.8
의존: libstdc++6
의존: libx11-6
의존: libxext6
의존: libxft2
의존: libxi6
의존: libxrender1
의존: wget
의존: zlib1g
충돌: <gzilla>
대체: <gzilla>
-
midori
빠른 편. 아파치 인증이 없는 듯. flash 안됨.
CSS 지원은 비교적 잘 됨. (안깨지고 잘 나옴) 소스코드 크기도 비교적 작음
의존하는 패키지가 좀 있음
$ apt-cache depends midori
midori
의존: libatk1.0-0
의존: libc6
의존: libcairo2
의존: libfontconfig1
의존: libfreetype6
의존: libglib2.0-0
의존: libgtk2.0-0
의존: libpango1.0-0
의존: libpixman-1-0
의존: libpng12-0
의존: libsexy2
의존: libwebkitgtk1d
의존: libx11-6
의존: libxcursor1
의존: libxext6
의존: libxfixes3
의존: libxi6
의존: libxinerama1
의존: libxml2
의존: libxrandr2
의존: libxrender1
의존: zlib1g
- netsurf
RISC OS, unix(linux, BeOS?)지원. 느린 듯.
창 크기 변경 엄청 느림, CSS 페이지 많이 느림, 그림 뜨는 시간 느림. 탭 지원 안됨.
프레임 지원, 또는 파서 지원이 약한 듯.
HTML parser error : Tag o:p invalid
style='font-size:9.0pt;font-family:Verdana'><o:p></o:p></span></b></p>
^
namespace warning : Namespace prefix o is not defined
style='font-size:9.0pt;font-family:Verdana'><o:p></o:p></span></b></p>
이런 에러가 좍 뜸.
- midbrowser
모질라 게코 기반 임베디드용 브라우저라는데 실행시 에러남
가장 무거운 소스(45메가)
- amaya
웹브라우저+HTML 에디터 W3C에서 제공하는 테스트베드 - 프레임지원 미비? 브라우저로 쓸 것은 아닌 것 같음
- links gui
데비안 패키지 이름은 links2
links -g 로 실행하면 x화면, svga화면에서 실행할 수 있음.
아주 가벼움. 빠른 속도 그러나 한글 지원 못봤음. 역시 그림 이외엔 다른 지원 없을 듯. CSS 지원 완벽하지 않음.
$ apt-cache depends links2
links2
의존: libc6
의존: libdirectfb-1.0-0
의존: libgpmg1
의존: libjpeg62
의존: libpng12-0
의존: libssl0.9.8
의존: libsvga1
svgalib1-libggi2
의존: libtiff4
의존: libx11-6
의존: zlib1g
게코와 웹킷도 봐야할 듯.
참고로 소스 크기
377K midori_0.0.17.orig.tar.gz
542K dillo_0.8.6.orig.tar.gz
965K netsurf_1.1.orig.tar.gz
4.0M links2_2.1pre32.orig.tar.gz
7.5M amaya_9.55~dfsg.0.orig.tar.gz
45M midbrowser_0.3.0rc1a-1~8.04.2.tar.gz
Intel Atom 프로세서
이제껏 모르고 있었는데요 인텔 아톰 프로세서라는 게 출시 됐는데 TDP(파워)가 0.6~2.5와트 소모된다고 하고, 클럭은 1.8GHz까지 가능하다고 합니다. EM64T도 호환되고 HT도 지원하고요 VIA C3가 아니라 ARM에의 대항마인 것 같은데요
ISSCC2008에 소개되기도 했다고 하긴 하던데
The 2 GHz variant of the Silverthorne processor will operate at 1 volt and it will have performance equivalent to a first generation "Banias" Pentium M notebook processors circa 2003. Rattner confirmed this was for single-threaded performance on a broad range of applications. This would seem to imply that with multithreaded applications, the performance would be even higher than Banias which lacks Hyper-Threading.http://blogs.zdnet.com/Ou/?p=987 이에 따르면 MPCore보다 훨씬 좋은 single thread 성능을 보일 것으로 보입니다 이게 그렇게 좋다면 크게 이슈 될 거 같은데 별 말이 없는 거 같네요. ISCA에서도 들어보지 못했구요 어떻게 평가해야 할까요? http://chitsol.com/537
Optimizing Dual-Core Execution for Power Efficiency and Transient-Fault Recovery
Optimizing Dual-Core Execution for Power Efficiency and Transient-Fault Recovery IEEE PADS'07
Dual-Core Execution- Building a Highly Scalable Single-Thread Instruction Window (한글 설명) 여기 논문의 둘 째 판 쯤 됨.PACT05?
제대로 읽어보진 않았고 abstract정도만..
Dual-Core Execution(DCE)이란 single thread 프로그램을 코어 두개로 실행해서 빠르게 하겠다는 것인데, 이번 논문은 여기에 중복되는 계산을 좀 줄여서 파워와 안정성을 개선하겠다는 것인 듯.
Compared to the original DCE, the optimized DCE has similar speedups (34 percent on average) over single-core processors while reducing the energy overhead from 93 percent to 31 percent.
역시 에너지는 싱글 코어 때보다 더 소모되긴 하는데, 속도 30% 증가에 에너지 30% 더 소모. linear하군요. 그게 진짜인지는 논문을 읽어봐야 할 듯.
최적화
공학에서 최적화 문제는 현상을 representation 잘하는 수식을 찾아내되 풀수 있을 만큼 쉬운 수준의 식으로 찾아야 이후에 수식을 통해 최적을 찾을 수 있고 그렇지 않다면 heuristic으로밖에 갈 수 없다(NP문제가 됨). - 연세대 모정훈 교수
http://www.stanford.edu/class/ee364a/index.html