현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
작년 말에 Athlon64에 gentoo를 64비트 환경으로 설치하고 오라클도 64비트 환경으로 올릴려다가 X가 너무나 안뜨는 황당한(실력부족이겠지만) 겪고 너무 힘들어 32비트 제품을 설치 한적이 있습니다. 오라클도 운영에 문제도 없고 64비트 환경이 아직 안정화 되지 않아 그럴려니 하고 넘어간적이 있습니다.
이번엔 인텔제온EMT64에 x86_64 환경으로 그룹웨어 서버를 구축해야 했는데 APM (PHP에서 외부라이브러리를 많이씀) 조차 제대로 컴파일되지 않는 일을 겪고 해결방안이 보이지않아 32비트 환경으로 인스톨할려고 생각 중입니다.
근데 풀리지 않는 궁금증이 하나 있는데 제목과 같이 모든 시스템 라이브러리, 바이너리등을 64비트 환경에서 다시 컴파일해서 쓴다손 치더라도 무슨 이점이 있는 가 입니다. 부족한 실력으로 나름대로 자료를 조사해봐도 64비트 컴퓨팅의 이점보다는 64비트라는 환상에 사로잡혀 있다는 인상이 강했습니다.
제가보는 관점에서는 동일 시스템에 32비트이나 64비트 환경이 성능향상에 미치는 영향은 없다고 보고 있습니다.
32비트냐 64비트냐는 대형 엔터프라이즈 시장에서 필요한 조건을 충족시키기 위한 것이 아닌지 생각 됩니다.
이를테면 32비트에서의 생겨나는 하드웨어적인 제약들 말입니다.
(멀티프로세서, 메모리, 디스크등)
AMD나 인텔등의 벤더에 입장에서는 64비트 환경으로 이미 넘어가 버렸다고 해도 될꺼 같은데 과연 end user들과 entry level 기업들에게 주는 이점은 무엇일까요?
고견 부탁드립니다.
최근에 서버를 (HighEnd PC도) 구매한다면 다들 64비트를 우선
최근에 서버를 (HighEnd PC도) 구매한다면 다들 64비트를 우선 고려하리라 생각 됩니다.
그렇다면 소프트웨어와 함께 서버를 공급&구축하는 입장에서는 당연히 리눅스를 64비트 환경으로 구축해 주어야 하겠죠.
이미 컴퓨팅 환경이 64비트 기울었다는것은 대세인건 자명한 것이네요 ^^
Re: 현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
64비트라면 배포판 그냥 설치하셨을 것 같은데, 배포판에 있는 패키지가 설치가 안되던가요?
컴파일 옵션을 바꾸거나 하려면, 단지 소스rpm 혹은 소스deb등등을 받아서, 옵션 조금 고쳐서 rebuild하시면 다 될텐데요.
(전 그런 식으로 잘 쓰고 있습니다. fedora core3)
다 아시는 듯 한데 질문을 올리신 의도가 무엇인지 잘 모르겠네요.
버스의 크기가 다르고, 엑세스 할 수 있는 주소의 크기가 달라지고,
메모리도 더 많이 달 수 있고 빠르다 등등.
Re: 현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
RPM이나 DEB로는 입맛에 맞게 구성하기가 힘들어 컴파일 하여 설치 합니다.
자유게시판에도 올릴까 생각해 보았지만 질문 인것 같아 Q&A에 올리게 되었습니다. 그리고 제가 알고 있는 내용밖의 내용이 알고 싶어서 글을 올렸구요.
님께서도 여러가지고 이유중 마지막에 "빠르다"고 하셨는데 제가 의문점으로 여기는 핵심도 "왜 빠르냐" 입니다.
Re: 현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
힘들다는 뜻은 잘 몰라서라는 뜻인가요? 원하는 설정을 만들기 힘들다는 뜻인가요?
제 경험상, 직접 make/make install보다는 훨씬 쉽습니다.
궂이 make/ make install하고 싶은데 패치 먹이는 것이 귀찮을 경우라면 다음과 같이 하시면 편리합니다.
소스 rpm 혹은 deb 파일을 압축 풀어서 살펴보시면 64비트에 관한 패치들이 좌악 나옵겁니다. 그 패치를 적용하려면,..
레드헷 계열에서 제가 자주 썼던 방법은,
rpmbuild -bb foo.spec 하시면 압축이 풀리고 빌드될겁니다.
이때 ^C를 재빨리 누른 다음, BUILD 디렉토리로 갑니다 ^^;;
이제 원하시는 옵션으로 configure를 재 실행 시키시고 make하세요.
64비트 자료형을 한번에 계산할 수 있기때문에도 빠르고메모리 구조도
64비트 자료형을 한번에 계산할 수 있기때문에도 빠르고
메모리 구조도 32비트 보호모드 보다 훨씬 간결해서 더 빠를겁니다.
64비트 모드에서는 레지스터 개수도 두배입니다.
Mathematica 5.X 버전 벤치마크를 본적이 있는데
AMD64나 옵테론에서 64비트 리눅스가 32비트 리눅스보다 20%정도 성능이
더 나오더군요.
http://smc.vnet.net/timings50.html
큰DB를 다뤄야 하거나 과학계산처럼 계산이 많이 필요한 분야에서 특히
성능 향상이 큰듯 합니다.
간간히 보게되는 벤치마크 결과도 그렇게 나오더군요.
주소공간의 추가 확보가 가장 큰 의미 일것 같습니다.엔터프라이즈 시장
주소공간의 추가 확보가 가장 큰 의미 일것 같습니다.
엔터프라이즈 시장에선 이미 4GByte 라는 용량은 부족해 지기 시작했거든요...
참고로 제가 다니는 회사에서도 32-bit machine 에서 Itanium 2 / 16GByte 시스템으로 교체를 계획중에 있습니다.
가장 큰 이유는 물론 4Gbyte 라는 메모리 한계 때문 입니다.
64bit인 데이터라면
예를 들어 요즘은 IP Adress는 32bit지만 곧 64bit주소로 바뀌게 되겠죠..
그러면 이숫자를 잘만하면 한번에 처리할 수 있는 것이 아닐까 합니다.
옛날에 DEC 알파가 64bit였는데 double로된 부동소수점 연산을 잘 한다고 인기가 있었습니다.
아니면 여러개의 char를 한번에 처리하는 것도... 가능한가요? :
전 왠지 알것같아요.
이 스레드를 제안하신 분의 마음을 조금은 알 것 같아요. 저도 gentoo 를 컴파일 해서 Base system 설정까지 해놓고 X Server 컴파일이 안되어서 그냥 설치를 했었지요.
그 때 순간 '왜 64 Bit Linux 를 설치해야 하는 거지?' 라는 생각을 하게 됐지요. 사실 AMD64 버전이나, 이번에 새로 나올 EMT64에 대한 패키지는 전체가 64 bit 버전이 아니라, 일부는 32 bit, 일부는 64 bit 로 패키징 되어 있다는 것이죠.
만약 아이테니엄 64 Bit 환경이라면 전부가 다 64 Bit 명령어로 구성되어 있을것 아닙니까? 그렇다면 쓸만하겠다고 생각되요. Sparc 이 64 Bit 모드로 움직이게 커널을 설정하면 그에 맞춰 움직이잖아요.
AMD64 환경이나 EMT64 환경에서의 리눅스는 조금 이르지 않나하는 생각이 들더라고요. 모든 패키징이 완벽히 64 Bit 환경을 지원하고 32 bit 라이브러리와 64 bit 라이브러리를 구분해가면서 쓰지 않아도 된다면 그 때가 64 bit Linux 의 전성시대라고 말할 수 있을것 같습니다.
Re: 전 왠지 알것같아요.
그런데, debian 인가 gentoo 에 있는 pure64 가 있는데, 그것은 완벽하게 64bit 환경이라고 봐야 하지 않나요?
아직은 패키지 이외의 몇몇 것들은 어쩔수 없는 경우가 있지만, 그외에는 64bit 환경이 맞는 것 아닌가요?
말씀대로 어느정도 시간이 흐르긴 흘러야 될 듯 합니다.
Re: 현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
노트북으로 20여분동안 스레드를 달던중 배터리가 방전되어 꺼졌습니다 -_-;;;;;;;;;;;;
축약해서 여러분들의 고견은 잘 들었습니다.
윗분들께서 말씀하신 64bit 형을 한번에 처리할수 있다. 라든지 실수 연상시 편리하다 등의 이론적인 예와 더불어 다른 적절한 향상점을 알 수 있으면 더욱 이해하기 쉬울 것 같습니다.
이를테면 3GHz CPU에서 1초에 32bit를 3천번 처리하는거랑 64bit를 3천번 처리하는 거량 뭐가 빠르겠냐라든지 하는 좀더 쉬운 비교자료가 없을까요?
저도 기회가 된다면 64bit 지원 CPU에서 Oracle이나 MySQL을 동일한 환경에서 벤치마킹해보고 싶습니다. 그럴려면 64bit로의 전환이 주는 성능 향상 부분에 대해 이해를 하고 있어야 된다고 봅니다.
아참 그리고 저의 리눅스 사용경력은 10여년이 약간 못됩니다. 4년전에는 SuSE리눅스 한글화 패키징도 해 보았습니다. 기본적으로 컴파일이 잘 안된다고 한 것은 아주 복잡하게 얽힌 사항에 대해서 말한 것이면 PHP의경우 apache 용 so 모듈이 생성되지않아 static module로 컴팔하려니 또 전혀 알 수 없는 에러를 유발 한다든지 하는 상황이였습니다. SRPM도 도움을 주지 못한 부분들 입니다.
Re: 64bit인 데이터라면
IPv6는 64bit는 아니고 128bit죠. 여전히 두 번에 처리해야 하는군요.. :)
64비트는 역시 주소 공간이 늘어난다는 장점이 있는 것 같습니다.
4GB는 기업환경 뿐만 아니라 조금 신나는 프로그램을 돌려보거나 실험을 해보려고 하면 비좁은 세계입니다.
뭐, 인텔에서 em64t 따위로 지금도 64GB까지는 쓸 수 있게 하고 있지만 그래도 모든게 다 64bit로 native하게 처리되는게 깔끔하겠죠.
[quote="gitagy"]:윗분들께서 말씀하신 64bit 형을
리눅스와 별 상관이 없긴 하지만.... 회사에서 MS 와 64-Bit Active Directory 에 대해 PoC 를 진행한 결과는 32-Bit 대비 약 55%의 성능 향상을 확인 했습니다.
Itanium 2 CPU 자체의 성능 향상도 어느정도 영향이 있었겠지만 PoC 를 통해 확인된 성능 향상의 주된 요인은 "물리 메모리 증가 -> 캐쉬 사이즈 증가 -> Disk I/O 감소 -> 단위 시간당 처리 트랜잭션 증가" 이런 형태 였습니다.
PoC에 사용한 데이터는 1억 2천만건 으로 DB Size가 약 300G 였습니다.
어드레스 공간이 늘어나는 것과 64bit 연산을 한번에 할 수 있다는 것
어드레스 공간이 늘어나는 것과 64bit 연산을 한번에 할 수 있다는 것은 64bit를 고려하여 작성한 software가 아니고는 그리 큰 속도차이를 가져오지는 않습니다. 하지만 data transfer 시 한번에 64 bit 씩 처리되므로 속도가 두배 가까이 빠릅니다. 64bit를 사용하는 경우 속도 향상의 대부분이 이것 때문이 아닐까 합니다.
저도 회사에서 데스크탑으로 gentoo amd64를 6개월 정도 사용하였는데, 기본적인 application은 설치 시 별 문제 없고, 컴파일 작업 시 눈에띄는 빨라져서 맘에 들었는데, 몇일 전에 32bit로 다시 바꾸었습니다.
서버라면 거의 완벽한 64bit로 사용이 가능하지만, 데스크탑용 어플리케이션 호환성은 아직은 무리더군요.
현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
제가 생각하는 64bit 컴퓨팅 환경이 주는 이점은 다음과 같습니다.
Enterprise 환경
- 대용량의 데이터베이스를 다룰때 가장 큰 속도의 향상은 램이죠 램이 클수록 엄청난 속도의 향상이 있게 됩니다. 64비트 환경에서는 대용량의 메인메모리를 적재 할수 있죠. 정확한 속도향상의 수치는 트랜잭션 발생건수, 메모리량에 따라 틀려지므로 측정은 불가겠죠.
- 화폐단위의 연산시 위력을 발휘합니다. 특히 금융권의 경우 화폐단위가 엄청 나게 크죠 32비트 환경에서 signed int가 2억 얼마까지 인가요? 그 이상의 숫자는 실수형으로 처리 해야 합니다. 정수형과 실수형의 단순 cpu cycle로만 비교 했을때 제 기억으로 6배 차이가 났던거 같습니다.
- 위에서 다루었듯이 대용량의 데이터베이스는 램의 활용도가 크므로 bus의 폭도 성능향상의 요인이 됩니다. 벤치마킹에서는 버스폭 향상으로만 약 40%정도 성능향상이 있다고 하는군요. 엔터프라이즈 환경에서 유사한 플랫폼으로 40%의 성능향상을 위해서는 4000% 비용을 지불해야 할껍니다.
과학기술분야
- 말할필요도 없이 부동소수점 연산이 엄청난 속도향상을 가져 오죠
일반사용자(end user)
- 게이밍환경에서 속도향상이 큽니다. 요즘은 모든 게미이 3D로 제작이 되죠. 3D로 제작이 될경우 그래픽 연산에서 부동소수점 연산을 하게 됩니다.
- 3D로 제작되는 만큼 물리엔진도 2D에 비해 상당히 복잡해 지게 됩니다. 이경우에도 속도 향상이 있습니다. 대표적인 게임물리엔진인 Havoc 엔진의 경우 64비트 환경에서(물론 엔진도 64비트로 제작) 60%의 속도향상이 있었다고 합니다.
위의 환경은 모두 64비트 OS, 64비트 응용프로그램일때만 가능한 얘기죠.
여담입니다만 화폐단위가 클수록 엄청난 국가적 손실이 생깁니다.
위에서 말한 연산에 관련된 컴퓨팅 파워를 쓸데 없이 낭비하죠(int로 충분한걸 float으로 처리), 그리고 인쇄시 쓸데없는 0이 더 들어가면 잉크, 종이가 낭비 됩니다. 한장으로 보면 얼마 안될꺼 같지만 프린팅, 책, 등등을 생각한다면 엄청난 손실입니다. 얼마전 디노미네이션을 한다고 뉴스에서 본거 같은데.. 전 백번 찬성이죠.. ^^
Re: 현재 우리에게 64Bit 컴퓨팅이 주는 이점이 무엇인가요?
딴지... :lol:
화폐단위를 부동소숫점으로 취급하면 낙전(?)수입이 좀 크겠는데요...
예를 들어 float라면 대략 유효숫자가 10진수로 환산했을 때 7~8개
정도밖에 안되구요, double도 대략 15자리인데요... 10바이트짜리
long double이라고 해도 19~20자리... 만이면 0이 네개, 억이
8개, 조가 12개니까 float은 억이 넘어가면 대략 천원단위는 전부
짤리고, double은 경쯤 되면 그렇게 되겠네요.
화폐단위를 취급하는 프로그램을 해본적은 없지만 대략 생각해봐도
유효숫자 개념이 있는 부동소숫점을 사용할 것 같지는 않습니다.
차라리(?) 64비트 정수를 쓰거나, 좀 더 정확하게 하려면 확장 가능한
(크기가 무한히 커지는...?) 정수 라이브러리 등을 사용해야 되지
않을까요...?
--------------------------------------
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;
아시는 분의 경험입니다.
제가 아시는 분의 경험입니다.
MySQL 부하가 많아서, 튜닝을 하려는데 SQL 튜닝이 쉽지 않아서 제일 쉬운 방법으로 장비를 옵테론으로 바꾸었다고 합니다.
결과는 장비만 바꾸었는데, MySQL이 약 10배 정도 빨라졌다고 하더군요.
정확한 벤치마킹은 누군가 장비 있는 분이 해주심 감사하죠^^
댓글 달기