반응형

Programing/C- programing 41

병렬 프로그래밍을 이용한 For loop 속도향상

/* * http://sosal.tistory.com/ * made by so_Sal */ 1. CPU core 개수 확인하기2. OMP_NUM_THREADS 환경변수 추가하기3. Visual studio / OpenMP 설정하기4. For loop 속도 test 더블코어 이상의 CPU에서 for loop를 돌릴 때는일반적으로 하나의 cpu 코어만 사용하기 때문에 컴퓨터의 성능을 최대 활용하지 못합니다. 듀오 혹은 그 이상의 다중코어 CPU를 사용하는 프로그래머들은병렬 프로그래밍을 사용한다면 훨씬더 빠르게 실행할 수 있습니다. 1. CPU core 개수 확인하기 컴퓨터의 코어 개수를 확인하기 위해서는 내컴퓨터의 속성을 들어가시면 아래와 같이 확인 가능합니다. 제 싸구려 노트북은 듀오네요. 즉 2개의 코어..

c++ STL 2차원 vector 배열 만들기

/* * http://sosal.tistory.com/ * made by so_Sal */ 배열을 이용하여 2차원 배열을 만들면, 크기 조절, 인덱스 조절이 불편해서 vector를 이용하여 2차원 배열을 만드는 방법을 공부했습니다. vector를 인자로 가지는 vector를 만들어서, row의 개수만큼 만드는 방법이 있지만 코드가 길어져서 한번에 크기를 결정하는 방법을 생각해봤습니다. #include #include #include #include #include #include #include #include using namespace std; vector table; int main(){ int row = 15; int col = 10; table.assign(row, vector(col, 1));..

C++ / K-means clustering implementation

/* * http://sosal.tistory.com/ * made by so_Sal */ - 출처: http://en.wikipedia.org/wiki/K-means K-means 알고리즘 1. 군집의 개수 k 를 설정해준다. (사용자 input) : 위 그림에선 3이 k / 무작위의 위치에 선택 2. k에 대해서 모든 데이터와의 거리를 구하고, 각 데이터에 대해서 가장 가까운 k에 포함되도록 한다. 3. 각각의 k에 포함된 데이터들의 중심을 구하고, 각 k의 중심에 k를 이동시킨다. 4. step 2,3을 반복하여 모든 k의 위치가 변함없을 때 까지 반복한다 #include #include #include #include #include using namespace std; #define K_COUN..

화일처리 - MovieLensData 통계 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ - Input data. 인풋파일에 담겨져있는 데이터를 읽어와 통계를 내려고 합니다. 다음은 각 데이터 파일에 해당하는 레코드 구성 정보입니다. ==================================== 예제 1 ==================================== /* * Users.dat 로 부터 '총인원' '남성' '여성' 의 수와 * '남성평균나이' '여성평균나이' 전체평균나이' 를 구한다. */ #include #include #include #include #include #include using namespace std; double N=0,F=0,M=0,Fage=0,Mage=0;..

최대공약수 최소공배수 gcd lcm 소스코드

/* * made by so_sal * http://sosal.tistory.com/ */ 정수론 수업시간에 배웠던 호제법으로 옛날에 만들어놓은 소스입니다. 최근 더블릿 시작했는데, 3계단에서 많이 쓰이길래 올려봅니다. gcd : 최대공약수 lcm : 최소공배수 #include #include #include using namespace std; int gcd(int a,int b){ printf("a::%10d, b::%10d, a\%b::%10d\n",a,b,a%b); if(a%b == 0){ return b; } return gcd(b,a%b); //호제법 } int lcm(int a,int b){ return a*b/gcd(a,b); } int main(void){ int a,b; cin>>a>>..

C++ - 포함과 상속

/* * http://sosal.tistory.com/ * made by so_Sal */ 객체지향 상속관련해서 포스팅을 한적이 없더라구요~ 복습할겸 끄적여봅니다 ㅎㅎ 아래는 x,y 좌표를 저장하는 객체를 만든 모습입니다. #include #include using namespace std; class point{ private: int x,y; public: point(int _x,int _y):x(_x),y(_y){}; int getX(){ return x; } int getY(){ return y; } }; int main(){ point a(3,5); printf("%d %d",a.getX(),a.getY()); return 0; } C++ 프로그래밍 경험이 있으신분들은 위 코드를 쉽게 이해하실거..

반응형