Microsoft Word - 2부B windows 환경 visual studio 2005.doc



Similar documents
Microsoft Word - 3부A windows 환경 IVF + visual studio.doc


슬라이드 1

Microsoft PowerPoint - chap01-C언어개요.pptx

슬라이드 1

초보자를 위한 C++

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

강의10

MPLAB C18 C

BMP 파일 처리

DE1-SoC Board

untitled

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint - chap-02.pptx

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

ISP and CodeVisionAVR C Compiler.hwp

윈도우시스템프로그래밍

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

Microsoft PowerPoint - chap-02.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Sena Technologies, Inc. HelloDevice Super 1.1.0

Microsoft Word - cover.docx

4S 1차년도 평가 발표자료

과목 Overview 목적: 본 과목은 C 언어를 통하여 컴퓨터를 이용한 공학적 문제 해결 과정을 학습한다. C 언어의 변수 타입, 제어문, 함수, 포인터, 구조체 등을 학습한다. C 언어와 다른 언어와의 통합의 방법에 대해 배운다. 2

MAX+plus II Getting Started - 무작정따라하기

Dialog Box 실행파일을 Web에 포함시키는 방법

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

PowerPoint 프레젠테이션

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Refer

K&R2 Reference Manual 번역본

PowerPoint 프레젠테이션

C++-¿Ïº®Çؼ³10Àå

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

Microsoft PowerPoint - 1C언어소개0.PPT

윈도우시스템프로그래밍

Chapter 1

슬라이드 1

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

<31325FB1E8B0E6BCBA2E687770>

1

Microsoft PowerPoint - chap12-고급기능.pptx

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft Word - Armjtag_문서1.doc

Interstage5 SOAP서비스 설정 가이드

02 C h a p t e r Java

제목을 입력하세요.

슬라이드 1

vi 사용법

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

Microsoft PowerPoint - lecture2-opengl.ppt [호환 모드]

ALTIBASE 사용자가이드 Templete

PowerPoint 프레젠테이션

PowerPoint Presentation

(SW3704) Gingerbread Source Build & Working Guide

10X56_NWG_KOR.indd

PowerPoint 프레젠테이션

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

IDA 5.x Manual hwp

PRO1_04E [읽기 전용]

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PRO1_02E [읽기 전용]

K7VT2_QIG_v3

PowerPoint 프레젠테이션

1. 도구개요 Implementation Eclipse CDT 소개 CDT(C/C++ Development Toolkit) 는 Eclipse plug-in 중하나로 C/C++ 개발을위한통합개발환경 (IDE : Integrated Development Environmen

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Deok9_Exploit Technique

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

슬라이드 1

Microsoft Word - ASG AT90CAN128 모듈.doc

CD-RW_Advanced.PDF

Microsoft Word - Network Programming_01.docx

SaaS 플랫폼을 위한 Web 2.0기반 서비스 제공 미들웨어 기술 연구

Parallel Programming 박필성 IT 대학컴퓨터학과

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint 프레젠테이션

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

6주차.key

ODS-FM1

J2EE & Web Services iSeminar

PRO1_09E [읽기 전용]

슬라이드 1

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft Word - Modelsim_QuartusII타이밍시뮬레이션.doc

Microsoft PowerPoint - 1장 C 프로그래밍 시작하기 pptx

chap 5: Trees

Transcription:

1. 영문 Visual Studio 2005 Visual Studio 2005 설치 Visual Studio 2005 시작하기

new project 파일 > 새로만들기 > 새로운 프로젝트 > Visual C/C++ Project > Console Application File > New >New Project > Visual C/C++ project > Console Application 2

왼쪽에서 Visual C++의 Win32 를 선택한다. 이후 Win32 Consol Application을 선택하고 파일이름을 입력한다. Next를 누르면 프로젝트에 대한 속성을 지정할 수 있다. Console application과 Empty project를 선택하자. 윈오우즈 창에 결과가 나타나는 프로그램을 만들고 싶을 때에는 Windows application을 선택하면 된다. 그러면 프로젝트가 하나 생성된다. 3

프로젝트 탐색기에서 Source Files에서 마우스 오른쪽 클릭을 하여 Add를 선택하고 New Item을 선택한다. 파일의 종류를 Code로 선택하고 C++ Files(.cpp)를 선택한다. 이름에 파일이름을 지정한다. 이때 C언어 형식으로 작업하고 싶을 때는 확장자를 filename.c 파일로, C++언어로 프로그래밍 하고 싶을 때에는 filename.cpp로 지정해주는 것이 편리하다. 확장자를 입력하지 않으면 자동으로.cpp가 붇게된다. edit 4

5

compile Build 메뉴의 Build 명령을 통해 컴파일을 실행한다. 성공적으로 컴파일이 되면 밑의 log창에 성공여부를 나타낸다. Debug > Start Without Debugging 혹은 [Contro] + F5 키를 통해 컴파일된 실행파일을 실행한다. 6

7

debuggig 프로그램에서 에러의 발생은 크게 두 가지로 생각해볼 수 있다. 첫째, syntax를 지키지 않은 오류로, 이러한 오류는 컴파일을 하다가 에러 메세지를 띄우고, 컴파일이 끝나지 않는다. 이때는 log참을 확인하여 자신의 오류를 수정할 수 있다. 프로그래밍을 처음 배우는 초기에는 {} 를 한쪽만 열고 닫지 않은 경우, 함수이름, 변수이름의 타이핑 오타 등도 간혹 존재한다. 두번째는 컴파일이 제대로 실행되었지만, 실행결과가 엉뚱한 결과같을 나타내는 경우이다. 이러한 경우는 초기값설정을 안하거나 초기화를 안할 때 자주 발생한다. 배열의 참조가 잘못된 경우도 많고, 다양한 오류가 존재할 수 있다. 이러한 오류는 컴파일러에서는 오류메세지가 출력하지 않으므로 프로그래머가 직접 오류를 수정하여야 한다. 이때, 디버깅툴이 유용하게 사용된다. 디버깅 전에 브레이크 위치를 표시한다. 대부분 변수쪽, Iteration쪽, 중요 함수 호출에 Break Point를 설정한다. 8

Debug메뉴의 Start Debugging을 선택하거나 F5키를 눌러 디버깅을 시작한다. 9

그러면 파일이 실행되고, Break Point에서 실행을 정지하고 기다리고 있다. 현재 i가 1로 초기화 되기 전에 정지하였기 때문에 value가 1로 나타나지 않고있다. Command 명령창에서 Debug 명령을 실행할 수 있다. 혹은 시작키, 정지키 등의 디버깅 아이콘도 사용할 수 있다. 10

Next 버튼을 누르면, 화살표가 printf에서 멈추게 되고, i값이 1로 바뀌었음을 알 수 있다. 11

또한 마우스 오른쪽키를 누르면 다양한 Breakpoint 옵션을 설정할 수 있다. 이러한 기능을 이용하여 한줄 한줄 명령을 실행하며 변수값등을 파악하면 쉽게 코드의잘못된 곳을 발견하여 고칠 수 있다. 12

C/C++ OpenMP programming with Visual Studio 2005 OpenMP environment OpenMP is attractive parallel programming method. We can easily parallelize our serial codes, but OpenMP is only for SMP machine. Nowaday, it is easy to find out the PC which have 2 or 4 core CPU. In this machine, we can learn and test openmp code in windows PC environment. Various compiler support this parallel programing method. First, I select Visual Studio 2005 to start the journey. We can parallel programming with C/C++ in Visual Studio 2005. IMHO, Its IDE has many benefit for beginers. Visual Studio2005는 기본 지원하기 때문에 컴파일 옵션 변경만으로 쉽게 OpenMP 프로그랭할 수 있습니다. 먼저 Visual C/C++ 프로젝트를 생성합니다. 이때, 빈 project를 생성합니다. 소스파일을 하나 생성하여 코드를 입력합니다. 기초예제는 다음과 같습니다. #include <stdio.h> #include <omp.h> int main (int argc, char *argv[]) { int nthreads, tid; omp_set_num_threads(4); #pragma omp parallel private(nthreads, tid) { tid = omp_get_thread_num(); nthreads = omp_get_num_threads(); printf(" Hello World from Thread %d of %d n", tid, nthreads); } return 0; } 13

Visual Studio 2005는 OpenMP C/C++을 기본으로 지원합니다. openmp.h 를 헤더파일에 넣어주면 에러없이 정상출력됩니다. 14

하지만, 분명 thread 갯수를 4개로 지정했는데, 1개만 실행되는 것을 확인할 수 있습니다. Visual Studio에서 openmp컴파일을 하기위해서는 /openmp 옵션을 줘야 합니다. C/C++ > Command Line > Additional Options > 이제 다시 컴파일하고 실행하면 4개의 thread가 생성된 것을 확인할 수 있습니다. 이제 OpenMP컴파일을 위한 환경설정은 끝났습니다. 이제 OpenMP로 실제 병렬프로그래밍을 하면 됩니다. 15

3. C/C++ MPI programming with Visual Studio 2005 MPI(Message Passing Interface)는 Cluster Computer 즉, 여러대의 컴퓨터를 병렬로 연결한 시스템에서 병렬프로그래밍을 돌리기 위한 환경이다. OpenMP가 컴파일러 수준에서 지원하는것과 다르게 MPI는 운영체제 즉 OS 수준에서 지원해야 한다. Linux와 Unix에서는 다양하게 MPI환경을 구축할 수 있는데, Windows 환경은 크게 3가지로 나눠볼 수 있다. 1. Windows 2003 서버제품에 Cluster Comute Pack(CCP)를 설치하거나 Windows 2003 CCP를 설치하는 방법이다. OS차원에서 직접 지원하기 때문에 편리하지만, 각 노드별 라이센스를 받아야 하기 때문에 비용적인 면에서 큰 부담이 된다. 2. Windows에 Cygwin을 설치하고 Windows용 MPI인 LAM을 설치하여 사용할 수 있다. cygwin은 자신의 컴퓨터에 Linux환경을 설치하는 것과 비슷하기 때문에, 다양한 Linux 응용프로그램을 사용할 수 있는 장점이 있고, 무료이다. 처음접하는 초보자에게 약간 어려움이 있을 수 있지만, 최근에는 설치와 사용이 매우 쉽게 만들어져 쉽게 사용할 수 있다. 3. Windows에 Windows용 MPICH2를 설치하는 방법이다. 비용도 없고, 가장 쉽게 사용할 수 있고, Cygwin은 물론 Visual studio, Intel Fortran Compiler등 다양한 환경을 지원한다. 본 글에서도 Windows에 MPICH2를 설치하는 것을 기본으로 하고 있다. 16

2. Select Visual C++ project Windwos application & empty proejct 파일 > 새로만들기 > 새로운 프로젝트 > Visual C/C++ Project > Console Application File > New >New Project > Visual C/C++ project > Console Application 빈 프로젝트를 만듭니다. 이후 프로젝트 탐색기에서Add New item을 통해 Code > C++ File 을 선택해 소스코드파일을 하나 만듭니다. 만약 C++로 짜고싶다면 filename.cpp, C로 짜고싶다면 filename.c 로 설정합니다. 여기서는 filename.c를 사용합니다. C에서의 사용방법을 알면 똑같은 방법으로 C++에서도 사용할 수 있습니다. 17

이제, 새로운 창에 소스코드를 입력합니다. 사용할 코드는 다음과 같습니다. 아직은 MPI 프로그래밍의 기초를 배우지 않았기 때문에, 똑같이 입력하고, 컴파일하는 것만 연습해 볼 것입니다. 주의할 것은 C language는 대소문자를 가리기 때문에 주의하셔야 합니다. 특히, MPI 명령어는 MPI_Axxxx_xxxx() 의 형태를 띠고 있습니다. 즉, 첫 4자만 대문자이고 나머지는 모두 소문자입니다. #include <stdio.h> #include "mpi.h" int main(int argc, char *argv[]) { int rank, size; } MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); printf("hello, world I am %d rd core of %d core system n",rank,size); MPI_Finalize(); return 0; 이 파일을 컴파일 해봅니다. Check Compile!! You find Error Message!!. We need to register mpi.h library 18

include files 도구 > 옵션 > 프로젝트 > Visual C++ 디렉토리 > 추가 파일 Tools > Options... Menu > Proejcts and Solutions > Visual C++ Directories > Include files C: Program Files MPICH2 include Library Files 도구 > 옵션 > 프로젝트 > Visual C++ 디렉토리 > 라이브러리 파일 Tools > Options... Menu > Proejcts and Solutions > Visual C++ Directories > Library Files C: Program Files MPICH2 lib Check Compile. not yet success!! We need to configuration of project property Click proejct name and Right Click & select Property. 클릭 프로젝트 이름 > 마우스 오른쪽 클릭 > 환경설정 19

한글 Visual Studio 2005 : 링커 > 입력 > 추가종속성 영문 Visual Studio 2005 : Linker > Input > Additional Dependencies 에 mpi.lib, cxx.lib 를 추가한다. 이 파일은 MPICH2 의 library파일이다. 중요라이브러리는 다음과 같다. mpi.lib C Language용 cxx.lib C++용 fmpich2.lib Fortran용 이다. 따라서, mpi.lib cxx.lib 두개를 추가시킨다. 20

이제 환경설정이 완료되었습니다. Check compile!!.. We Succeeded!!. Run without Debug 21

cmd 명령을 통해 DOS prompt 로 가 파일을 살펴보면 0901-a.exe 파일이 생긴 것을 확인할 수 있습니다. Run MPI mpiexec n N 실행파일이름 명령을 통해 실행하면 결과를 확인해 볼 수 있습니다. 22

C/C++ Hybrid (OpenMP & MPI) programming with Visual Studio 2005 자신의 컴퓨터가 SMP cluster인 경우는 OpenMP와 MPI를 동시에 사용하는 프로그램을 짤 필요성이 있습니다. MPI는 네트웍으로 통신을 하기 때문에 통신부하가 많이 걸리기 때문에, SMP간에는 OpenMP코드로 돌아가게 하고 Node간에는 MPI로 통신을 하게 하면 병렬화를 통한 이득을 많이 볼 수 있습니다. 이를 위해서는 OpenMP와 MPI을 동시사용하게 옵션을 주면 되는데, 이미 MPI directory는 저장되었으므로, 프로젝트 생성시 추가 라이브러리와 openmp 컴파일 옵션을 사용하면 됩니다. 즉 23

간단한 형태의 Hybrid 코드를 입력합니다. MPI 안에 OpenMP 코드가 다시 작동되는 것을 확인할 수 있습니다. 컴파일후 실행하면 정상실행됩니다. 이때 주의할 점은 노드갯수와 SMP core 갯수를 자신의 시스템에 맞게 설정해 주어야 최적의 실행모드가 됩니다. 24