본문 바로가기

Robotics/Software Tech.

(148)
멀티쓰레드(Multi-thread) 어플리케이션을 위한 OpenMP의 기능 병렬 계산의 분야에서는 "병렬 계산은 장래적으로는 각광을 받는다. 언제가 되어도 장래적으로" 등이라고 말 해지기도 합니다. 이것은 최근 수십 년에 있어 진실했습니다. 같은 일은 컴퓨터 아키텍쳐의 업계에도 있어 프로세서 클락의 고속화는 곧바로 한계에 이른다고 언제나 말해지고 있습니다만 실제로는 지금도 고속화가 계속 되고 있습니다. 멀티 코어 혁명은 이러한 병렬처리 분야에서의 낙관과 아키텍쳐 분야에서의 비관의 충돌이라고 말할 수 있습니다. 주요한 CPU 벤더는 클락 속도의 증가로부터 멀티 코어 프로세서에 의한 on-chip로의 병렬처리 지원의 제공으로 방향성을 바꾸고 있습니다. 생각은 단순하고 하나의 칩에 복수의 CPU 코어를 탑재하자고 하는 것입니다. 이것에 의해 하나개의 프로세서에 2개의 코어를 탑재하고..
멀티쓰레드 프로그래밍.. OpenMP로 처리해보자. 로봇 소프트웨어처럼 멀티 쓰레드 프로그래밍이 반드시 필요한 부분에서 항상 문제가 쓰레드간 동기화와 멀티코어 환경에서의 프로그램 수행속도같은 문제가 항상 걸렸다. 그것을 간편하게 OpenMP라는 것을 사용하면 해결가능 하지 않을까 하면 찾아보던중 관련글을 올려보기로 한다. 본인도 OpenMP를 처음 들어본거라 잘 모른다. 이제 한번 살펴보고난뒤에 한번 나의 연구에 적용을 해보려고 한다. 아래글은 www.gisdeveloper.co.kr 에서 퍼온 글입니다. OpenMP에 대한 더 자세한 내용을 보시려면 http://openmp.org/wp/ 을 방문해 보십시오. Visual Studio 2008에서의 OpenMP사용은 http://msdn.microsoft.com/en-us/library/tt15eb9t...
UML 2.0을 위한 Microsoft Visio 스텐실 UML을 작성하기 위한 VISIO 스텐실을 구해서 올립니다. 자료는 http://softwarestencils.com/uml/index.html 에서 구했습니다. 이것을 내문서->내 셰이프에 다가 압축을 풀어두시면 됩니다.(일반적) 그리고, visio에서 도구->옵션->고급->파일경로에서 압축푼 파일들의 위치를 지정하면 됩니다. 사용할때는 파일->셰이프->스텐실열기로 파일을 열면 됩니다.
MFC에서 OpenGL 사용하기 MFC에서 OpenGL 사용하는 방법에 대한 설명입니다. 설명과 함께 샘플 파일을 업로드 합니다. MainFrame Class Step 1: In the Mainframe Class override the initial dimensions of the default Window. Using the CREATESTRUCT we change the dimensions of the window to 400 x 400 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.cx=400; cs.cy=400; return ..
표준 라이브러리 STL(Standart Template Library)도 종류가 여러가지가 있다. 그리고, 용도에 따른 다양한 표준화된 라이브러리가 존재한다. 개발할 소프트웨어에 표준화된 코드를 삽입하는 것은 소프트웨어가 타 라이브러리에 의존성이 커진다고 보기보단, 생산성 또는 확장성에 좀더 유리해졌다고 보면 될것같다. 퍼포먼스도 안나오는 라이브러리 만들어서 사용하기보단 인터페이스와 최대한 언어의 표준에 맞게 작성된 라이브러리를 구해다가 사용하는게 더 좋다.. STL의 종류 (1) Dinkum STL(http://www.dinkumware.com) VIsual C++에 탑재된 표준 템플릿이라고 한다. (2) SGI STL(http://www.sgi.com/tech/stl) (3) STLport (http://www.st..
Sequential Monte Carlo Template Class Particle Filter관련 자료를 검색하다가 찾은 사이트중 하나. 참고가 될것같아 올려둔다. 관련 URL : http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/johansen/smctc/ Sequential Monte Carlo methods are a very general class of Monte Carlo methods for sampling from sequences of distributions. Simple examples of these algorithms (often termed particle filters) are used very widely in the tracking and signal processing litera..
개발자를 위한 객체지향 패러다임 제 하드디스크에서 자고 있던 자료입니다. 본 글의 출처는 모르겠습니다. 아시는 분은 댓글을 남겨주시면 감사하겠습니다. 전체적으로 글이 길기때문에 나눠서 올리겠습니다. -------------------------------------------------------------------------- 1. Object의 기본 개념 Object는 데이타와 이와 관련된 procedure를 한데 묶어 표현한 소프트웨어 패키지이다. 이는 현실세계가 처리중심이 아닌 사물(객체 : Object)중심으로 이루어졌다는 데에 바탕을 둔 것이다. 세포(cell)를 예로 들어 생각해 보자. 세포는 핵, 키토콘드리아, 세포질, 세포막 등으로 이루어 졌는데, 이러한 세포의 구성 요소들에게는 각각의 역활이 주어져 있다. 그러나 다..
슈퍼클래싱과 서브 클래싱 슈퍼 클래싱이란 기존의 윈도우 클래스의 기본적인 기능에 새로운 기능을 추가하여 슈퍼 클래스라고 하는 새로운 윈도우 클래스를 생성하는 기법을 말한다. 이것은 C++의 상속성의 개념과 유사하다. 슈퍼 클래스는 슈퍼 클래스 프로시저 라고 하는 자신의 윈도우 프로시저를 갖는다. 이 슈퍼 클래스 프로시저는 운영체제로부터 메세지를 받아 그대로 기존의 윈도우 프로시저에게 넘겨주거나, 메세지를 수정하여 기존의 윈도우 프로시저에게 넘겨줄 수 있다. 또는 기존의 윈도우 프로시저에 메세지를 넘겨주지 않을 수도 있다. 서브 클래싱이란 윈도우 운영체제가 메세지를 처리하기 전에 메세지를 가로채어 특정한 윈도우에게 보내어 메세지를 처리하게 하는 기법을 말한다. 따라서, 윈도우를 서브 클래싱함으로써 윈도우의 행위를 확장시키거나 수정..