http://m.blog.daum.net/humanstory07/66
1. 우선, 하나의 CPU의 용량이 커지기 어려운 이유, Hz 라는 진동수를 올리기 어렵기 때문인가요?
2. 여러개의 CPU를 통합해 사용한다는건 병렬연산을 의미하나요?
3. 여러개의 언어를 쓰는데 용이하다면, porting이 중요한건데, porting을 잘해주는 언어는 다시 C로 만들게 되나요?
오리님같은 전문가들이 답변해주시면 감사하겠습니다!
기술자들과 이야기할때는, 용어 하나 하나 점검하는 편인데요...
'통신'으로 연결된다는건, 시리얼 케이블이나 usb로 연결된다는 건가요?
http://www.alphawire.com/Products/Cable/Alpha-Essentials/Communication-and-Control-Cable/1702?popup=pdf
https://en.wikipedia.org/wiki/Serial_port
port라는 인터페이스가 있군요. 환경센서 다룰때 항상 와이어링을 연결하던 건데요.
네 제가 의미하는 통신은 tcp/ip 를 통한 인터넷 통신을 의미합니다.
rabbitMQ( https://www.rabbitmq.com ) 나 redis( http://www.redis.io ) 처럼 application 간 상호 연동을 위해 사용하는 프로그램들이 있습니다.
그리고 말씀하신 시리얼 포트도 tcp/ip 로 바꾸어 주는 제품들이 있어서 ( http://www.sollae.co.kr/kr/products/csw-h85k.php )
serial port 만 가진 오래된 구형 장비들도 모두 tcp/ip로 엮을 수 있습니다.
답변은 좀더 생각하고 드리겠습니다.
우선 김대중 노무현 시대 이후의 스맛세대에 집중합니다. 그전엔 쪼인트까이며 코딩 배우ㅓㅆ을걸로 예상. ㅎㅎ 코딩 자체가 아니라 논리 껍데기를 연역하는게 핵심이고 코딩족이 아니라 플랫폼 공유족이 있어야 성장 가능합니다.
우선, 오리님 그림대로, cpu속도가 2005년이후로 정체된게 신기하네요.
http://www.edn.com/design/power-management/4409627/Si-vs--GaN-vs--SiC--Which-process-and-supplier-are-best-for-my-power-design-
'CPU 단일 코어만으로 성능향상을 시도하면 Hz가 올라갈수록 전력소모가 기하급수적으로 올라가요.'
를 방정식으로 이해할수 있을까요? power라는 표현이 Watt (J/sec)와 연결될것 같습니다.
검색해보니 power 는 frequency에 exponential 또는 f^3 정도 속도로 증가하내요.
CPU 시스템과 static은 거의 GHz에 일정한데, 트래픽이 증가할수록 GHz에 따라 처음엔 exp로 증가하다가 3승으로 증가하네요...
잘 모르는 분야지만 만일 3GHz 칩이 있다고 하면
빛이 1초에 3억미터를 간다고 하고
3GHz는 1초에 30억번 진동한다는 거니까
한번 진동할 때 칩내의 도선을 따라 전자기신호가 전달될 수 있는 거리는 0.1M 즉, 10cm가
이론상 최대치가 아닐까 합니다.
만약 30GHz 칩이라면 한 번 진동할 때 전자기 신호가 1cm밖에 못갈텐테 칩 크기보다도 작아져서
칩 한쪽에서 전자스위치 처리가 미쳐 이뤄지기도 전에 칩 다른쪽에선 그 다음 처리를 시도하는 문제가 발생할 것 같네요.
1. 우선, 하나의 CPU의 용량이 커지기 어려운 이유, Hz 라는 진동수를 올리기 어렵기 때문인가요?
-- 하드웨어 전문가가 아니라서 정확한 이유는 모르겠습니다. cpu 설계 분야의 새로운 기술이 나오면 기존 하드웨어 발전 속도보다 훨씬 빨라질 가능성은 언제나 있습니다. 아래 url 에 7번 이미지와 그 하단 설명을 참조해 보시면 요즘 추세가 에너지 효율적으로 가기 때문이라고 나오는 거 같습니다.
http://queue.acm.org/detail.cfm?id=2181798
2. 여러개의 CPU를 통합해 사용한다는건 병렬연산을 의미하나요?
-- 사용 주체가 단일 프로그램이라면 병렬 연산의 의미 일거 같고요.
. OS 처럼 여러 프로그램을 제어 하는 입장에서는 cpu별 프로그램 할당의 의미일거라 생각이 됩니다.
단일 프로그램이 여러 cpu를 활용할 때는 여러가지 장단점이 있는데, 장점이 단점보다 많을 경우에 한해서만 특별한 분야에서 특수하게 설계하여 처리하는 걸로 알고 있습니다. 병렬처리를 고려하지 않고 작성한 프로그램이 여러 cpu에서 병렬로 동작하지 않는걸로 알고 있습니다.
3. 여러개의 언어를 쓰는데 용이하다면, porting이 중요한건데, porting을 잘해주는 언어는 다시 C로 만들게 되나요?
—제가 알고 있기로는 언어 차원에서 언어를 porting 이 필요하는 경우를 말하는 거 아닌거 같고요.
요즘 추세가 하나의 프로젝트에 여러개의 언어가 사용되니 여러개의 언어를 다룰줄 알아야 한다는 의미 같습니다.
제가 6개월 전에 했던 프로젝트에서 제가 담당했던 부분만을 예로 들자면 아래와 같이 6개의 언어가 사용되는데,
이런 추세로 가는 이유중 하나는 오픈 소스가 기능(모듈)별로 좋은게 많기 때문에 각 영역별로 적절한 솔루션을 사용하고
각 모듈은 모듈간 통신으로 엮기 때문에 전체 모듈이 하나의 언어로 작성될 필요가 없어지는 거 같습니다.
———————————————————————————————————————————————————————————
클라이언트:
정보 수집 agent :visual c++ , javascript, html
서버
데이터 분석: c
로그 파싱 : 루비
웹: php
그래픽: javascript