728x90
반응형
728x90
반응형
728x90
반응형

 

(원문 : http://www.couchbase.org/wiki/display/membase/Building+Membase+on+Linux+From+Source)

(글 번역도 영어이고, 쓸데없는 내용도 많기에 중간 생략을 하며, 편의상 글도 높임말보다 이래하기 편한 평문으로 구성한다.)

 

membase 는 couchbase 에서 지원하는 memcached의 cluster 버전이다. 라이선스는 현재 아파치 2 라이선스를 적용 중이다. Couchdb 와의 기능을 써도 되지만 안 써도 되는 구조이며, couchbase에서 제시하는 이상적인 사용 전략은 당연히 RDMS à NoSQL à CouchDB 와 cluster/middleware à Membase 이다. 하지만 사용자 취향과 능력에 따라 섞어 짬뽕으로 써도 된다. 실제 membase 의 스폰서 중하나인 nhn도 자체 memcached 클러스터 버전인 arcurs 등을 개발하여 사용한다.

설치본은 community 용은 무료로 설치본을 제공하며, 기업용은 연락처 제시 후 다운로드가 가능하다. 기본 지원으로 redhat rpm, debian deb, windows, mac os x 를 지원한다. (http://www.couchbase.com/downloads/membase-server/community)

물론 소스 코드를 받아서 직접 빌드도 가능하며, 아래는 직접 빌드 방법을 기술한다.

일단 다운로드 싸이트에서 membase-server_src-1.7.0.tar.gz 를 받는다. (현재 1.7임. 1.6.x 도 존재한다.)

 (1) Ubuntu Ubuntu 11.04 사용 시,

# sudo apt-get install erlang libicu-dev libevent-dev libcurl3-dev g++ gcc binutils

…로 필요한 것을 설치함. Couch 계열이 기반 언어가 얼랭이며, memcached를 위해서 libevent는 필요하다. Curl 도 사용하므로 설치 해준다.

 (기본 설치는 /opt/membase/ 에 설치된다.)

(2) Cent OS 5.4 사용 시,

# yum install libevent-devel curl-devel gcc-c++ g++ gcc make

…얼랭 없으면 그것도 설치할 것…

(3) Mac os x

….요건 좀 짜증나는 해설인데,, 거의 알아서 깔아야 한다. MacPorts 등을 이용해서 설치를 하는 방법도 있을 것 같다. (이건 실험 못 해봤음)

(여담으로 본햏도 snow leopard 를 사용하지만, 누가 대용량 서버에 가격대 성능비가 비싼 애플 서버로 도배하것는가?! 99.9%는 리눅스 서버에서 사용할 목적일 것이다. 맥에서 빌드는 그냥 nothing but mac 인 사람에게만 해당된다고 보면 될 듯하다. 이것도 기냥 설치본[기냥 단일 응용 프로그램이다.]을 받아서 깔아서 테스트해보라…)

http://packages.couchbase.com/releases/1.7.0/Membase-Server-Community-1.7.0.zip

 (4) Windows

…mingw, cygwin 등이 먼소리인지도 모르겠다면, 당연히 pre-built 버전을 받아서 설치하라.

http://packages.couchbase.com/releases/1.7.0/membase-server-community_x86_1.7.0.setup.exe

(백신 v3가 있으면 경고를 띄우는데, 신경쓰지 말고 진행하도록 하자 K )

membase는 cluster 와 databse 연동 등도 고려한 구조이기에 memcached 보다는 휠씬 구성이 복잡하다. 따라서 빌드 & 설치가 어려운 사람은 community 버전 것으로 설치하도록 하자.

정상설치 후, 웹 브라우저로 http://서버주소:8091 를 연결하면 membase 구성이 가능하다. 단일 구성도 가능하고, 클러스터 구성도 가능하다. 또한 기존 memcached 만을 사용하는 것도 가능하고, membase 의 주요 컨셉 중 하나인 vBucket 구성도 가능하다. 취향에 맞춰서 구성하도록 하자.

설치 후 테스트는 아래과 같이 텔넷에서 입력 후, 출력도 아래와 같이 나오는 지를 확인해 보면 된다.

$ telnet localhost 11211

set some_greeting 0 0 5

hello

STORED

get some_greeting

VALUE some_greeting 0 5

hello

END

모든 과정이 끝났으면, 이젠 membase 만의 고유 architecture 이해와 클라이언트 개발 방법(전략 및 api )이해로 넘어가면 된다…


728x90
반응형
728x90
반응형

…대략 테스트해 본 3가지 C/C++ 기반 JIT COMPILER는 다음과 같았다.

 

GNU Lightning Dotgnu (libjit) Luajit (dynasm)
GNU 단체가 공식 관리 JIT의 사용 인터페이스가 가장 편하다. 다른 언어를 만들고자 할 때 libjit 만을 사용할 수도 있다. ('우스운'도 이걸로 구성하였다.) Dynasm 을 직접 사용하기는 그렇지만,,, Lua 와의 연결이 잘 되어 있음.
가장 최근까지 꾸준한 업데이트가 되고 있다. (여러 cpu 지원됨. 심지어 iphone 테스트 까지…)
최근 업데이트가 거의 없다. 물론 x86, x64 계열은 큰 변화는 없겠지만 아무래도 개발 지원이 끊어진 것 같다. --;… Executable luajit 에 너무 초점이 맞추어져 있다.

 

…결론으로는, 스스로 high level language 를 만들고자 한다면, libjit를 사용하는 것이 나을 듯하다.

…하지만 lua 자체가 이미 뛰어난 고수준 언어이므로 lua를 기반으로한 구성을 하려면 (아예 lua로 떡칠을 할 각오를 하고,,,) luajit이 현명한 판단이 될 것같다.

728x90
반응형

'Lua' 카테고리의 다른 글

luajit 테스트 - (2)  (0) 2011.06.26
luajit 테스트 - (1)  (0) 2011.06.26
[luajit] LUA + JIT  (0) 2010.12.08
[lua2exe] lua 로 exe 먼들기  (0) 2008.04.24
728x90
반응형
 단순 비교.조건 분기 코드를 테스트해 보았다. 물론 리눅스/하드웨어 사양은 전과 동일했다. 테스트 반복 횟수는 5백만번이었다.

 local function cond1(a,b)
    if  ( a > b ) then
        return a
    else
        return b
    end
end

local function test_condition ()
    local max_repeat = 1000 * 1000 * 50
    local x = os.clock()
    local s = 0
    for i = 1 , max_repeat do
        s = cond1( 1, 2 )
    end
    print(string.format(
        "elapsed time: %.9f\tcount = %u\n",
            os.clock() - x ,
            max_repeat ) )
end

test_condition ()


 # lua t1.lua
elapsed time: 17.900000000    count = 50000000

# luajit -j on t1.lua
elapsed time: 0.080000000    count = 50000000


 인터프리터 방식과 jit 사용은 당연히 비교가 안되었으며, 약 200배 정도의 차이가 발생한 듯하다. 물론 c 나  pascal 등 으로 이를 개발하면 거의 0 초 수준이지만... 소스 코드에서 바로 작업한 수준이 이정도인건 훌륭하다!!

728x90
반응형

'Lua' 카테고리의 다른 글

Jit compiler 테스트 중…  (0) 2011.07.02
luajit 테스트 - (1)  (0) 2011.06.26
[luajit] LUA + JIT  (0) 2010.12.08
[lua2exe] lua 로 exe 먼들기  (0) 2008.04.24
728x90
반응형

 

웹에 쓸만한 luajit 테스트 결과를 찾지 못해서 직접 테스트를 해보았다. 결론부터 이야기하자면, 결과는 매우 놀라웠으며 Mike Pall(독일 아저씨던데 사진은 못 구했음;)의 jit 엔진이 gnu lightning 이나, libjit 못지 않은 성능을 가지고 있음에도 놀랐다. (참고로 테스트 장비에서 gnu lightening의 incr 테스트는 10^9 반복시 820 밀리초가 소요되었다.)

향후, 기회가 되면 Dual/Quad 등의 멀티코어 테스트 시의 차이도 테스트해보았으면 하고, 루아 공식 지원이 아닌 lua-forgelua-socket 등도 테스트를 해보려고 한다. 그리고 llvm-lua 라는 프로젝트도 진행 중이던데 요건 아직 luajit 만큼은 진행도가 좋지 못하다.


             
 

luajit version 2.0 beta-5, Mike Pall

 
 

Lua SciMark 2010-12-10 based on SciMark 2.0a, Mike Pall

             
 

Linux : Ubuntu 11.04 32bit

     
             
 

CPU : Intel(R) Celeron(R) M processor 900MHz

 
 

Memory : 512 MB

       
             
 

FFT : Fast Fourier Transform

   
 

SOR : Jacobi Successive Over-Relaxation.

 
 

MC : Monte Carlo Integration.

   
 

SPARSE : Sparse Matrix Multiplication.

 
 

LU : Dense Matrix Factorization.

   
             
             

twat option : -small

       

  

FFT

SOR

MC

SPARSE

LU

SciMark

JIT-OFF

11.03

23.99

6.06

13.74

16.6

14.29

JIT-ON

71.96

301.09

46.77

57.49

177.78

131.02

             

test option : -large

       

  

FFT

SOR

MC

SPARSE

LU

SciMark

JIT-OFF

8.32

23.48

6.06

15.02

17.1

14

JIT-ON

24.7

292.54

46.77

72.73

141.24

115.6

             

vs. original scimark2

       

  

FFT

SOR

MC

SPARSE

LU

SciMark

C CODE

61.76

218.97

22.67

92.04

118.93

102.88

  

(N=1024)

(100 x 100)

 

(N=1000, nz=5000)

(M=100, N=100)

  

LUA JIT

24.7

292.54

46.77

72.73

141.24

115.6

(large)

[1048576]

[1000]

  

[100000, 1000000]

[1000]

  

LUA JIT

71.96

301.09

46.77

57.49

177.78

131.02

(small)

[1024]

[100]

  

[1000, 5000]

[100]

  

JIT-OFF

8.32

23.48

6.06

15.02

17.1

14

(large)

  

  

  

  

  

  

JIT-OFF

11.03

23.99

6.06

13.74

16.6

14.29

(small)

  

  

  

  

  

  

 


http://luajit.org/download/scimark.lua

http://math.nist.gov/scimark2/scimark2_1c.zip

728x90
반응형

'Lua' 카테고리의 다른 글

Jit compiler 테스트 중…  (0) 2011.07.02
luajit 테스트 - (2)  (0) 2011.06.26
[luajit] LUA + JIT  (0) 2010.12.08
[lua2exe] lua 로 exe 먼들기  (0) 2008.04.24
728x90
반응형

 

(1) 참고로, synology 108j는 big endian 이고, 110j는 little endian 이다. (물론 cpu는 다름)
(2) 아래와 같은 one line 처리도 있다. (0 이면 big endian, 1 이면 little endian)
 

[출처] serverfault.com

 
728x90
반응형
728x90
반응형
728x90
반응형

'글꼴' 카테고리의 다른 글

글꼴 (나눔 D2 KoPub)  (0) 2024.04.10
Windows Command(cmd.exe) 글꼴(Font) 추가/변경하기  (0) 2010.09.23
Fixedsys 글꼴 : 트루타입(Truetype)  (0) 2010.06.02
728x90
반응형

 MapReducde는 구글이 제안한 분산 처리를 위한 개발 모델입니다. 조엘은 소프트웨어를 넘어서 에서도 소개되기도 한 이 방법은 대용량 자료의 분산 처리에 유용한 구조입니다.

 이미 하둡 등의 프레임워크가 많이 나와 있으며, 미래의 컴퓨터 언어는 이런 처리를 기본 사양으로 제공해 줄 가능성이 높습니다. 물론 기존의 컴퓨터 언어도 미래형 언어로 변신하려면 이런 기능을 끌어 안아야 할 것입니다.
 그런데 Qt 쪽에도 이런 기능이 있는가 하는 것을 찾아 보다 보니 QtConcurrent 가 있습니다. 주 대상은 멀티코어 프로그램 개발이 필요한 경우에 저수준 인터페이스의 지원을 넘어서, 고수준의 인터페이스 제공을 목적으로 하고 있습니다.

 하지만, 향후 함수형 언어의 사용을 지향하는 MapReduce 모델과 객체지향 기반 모델인 Qt를 융합하는 방향이 어떻게 될 지는 노키아(201x)의 향후 방향을 계속 지켜봐야 할 것입니다. [본문 초안은 2011년에 작성되었습니다.]
 아래는 필자가 작성한 예제이며, 듀얼코어 CPU라면 한번에 두 개까지만의 쓰레드가 실행됨을 확인할 수 있을 것입니다. 물론 두 개의 쓰레드는 듀얼코어에서 사용하기 가장 이상적인 쓰레드 개수입니다.
 예제 실행을 원하면 Nokia Qt 사이트에서 LGPL 지원하는 Qt SDK 를 받아서, 콘솔 예제를 실행해 보면 됩니다.
  



728x90
반응형
728x90
반응형
 
luajit 는 루아의 기능에 JIT 컴파일 기능을 추가하려는 계획으로 구성된 Mike Pall 이 구성한 프로젝트이다. 기본 구성은 루아 코드를 사용하지만, 동적으로 루아 코드를 파싱하는 방안이 아닌 x86또는 x64에 호환 가능한 코드로 구성된 코드로 변환하여 실행하는 방안으로 되어있다. 즉, 일반 루아와는 다르게 성능의 차이가 크다. 세부 코드를 보면 x86/x64 계열에서 사용하는 어셈블리 사용하게 되어 있고, 이는 DynASM 이라는 네이티브 코드 생성 엔진을 사용하게 되어 있다.  이는 ocamlc/mono 등에서 사용하는 방안이기도 한데, 모든 CPU와 OS에서 적용할 수는 없으며 특정한 환경에서만 사용 가능하다.
 개인이 구성한 프로젝트로는 매우 훌륭한 컨셉의 프로젝트이고, 장기적으로 오픈 소스 조직 또는 비영리 단체가  인수하여 프로젝트의 활성화가 되기를 기원한다...
   
728x90
반응형

'Lua' 카테고리의 다른 글

Jit compiler 테스트 중…  (0) 2011.07.02
luajit 테스트 - (2)  (0) 2011.06.26
luajit 테스트 - (1)  (0) 2011.06.26
[lua2exe] lua 로 exe 먼들기  (0) 2008.04.24
728x90
반응형
728x90
반응형
728x90
반응형

여러 가지 방법이 있지만, 그 중 필자가 테스트해본 방법만 적는다.

(1) 레지스트리 편집기(regedit.exe)를 실행한다.

(2) 다음 항목을 찾아 간다.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont


(3) 새로 만들기 / 문자열을 추가한다.
    : 문자열 이름은 0949, 00949 등으로 추가한다. (너무 많이 추가할 수는 없다. 적당히 한 두개만 추가할 것.)
    : 문자열에 글꼴을 등록한다.

(4) 등록이 완료된 후에 작동하는 cmd.exe에서는 글꼴 변경이 가능하다.





728x90
반응형

'글꼴' 카테고리의 다른 글

글꼴 (나눔 D2 KoPub)  (0) 2024.04.10
Fixedsys 글꼴 (Truetype)  (0) 2011.05.01
Fixedsys 글꼴 : 트루타입(Truetype)  (0) 2010.06.02
728x90
반응형
728x90
반응형
728x90
반응형

맑은 고딕 글꼴이 나오기 전, 윈도에서 가장 일반적으로 사용되어 오던 글꼴이 Fixedsys 라는 것입니다.
지금도 물론 고정형 글꼴중 하나로 윈도에서 지원되고 있습니다.
이 글꼴의 truetype 형 글꼴을 제공해 주는 싸이트와 글꼴은 아래와 같습니다.
(라이센스는 GPL 라이센스 적용.)

http://fixedsys.moviecorner.de

fixedsys500c.zip
다운로드

728x90
반응형

'글꼴' 카테고리의 다른 글

글꼴 (나눔 D2 KoPub)  (0) 2024.04.10
Fixedsys 글꼴 (Truetype)  (0) 2011.05.01
Windows Command(cmd.exe) 글꼴(Font) 추가/변경하기  (0) 2010.09.23

+ Recent posts