피보나치함수[백준] 계단오르기 1003번 출처: http://hading.tistory.com/120 [Hading] 소스 코드 #includeint zero, one; int fibonacci(int n) {if (n == 0) {zero++;return 0;}else if (n == 1) {one++;return 1;}else {return fibonacci(n - 1) + fibonacci(n - 2);}} int main() {int T;int input;scanf("%d", &T);for (int i = 0; i < T; i++) {zero = 0;one = 0;scanf("%d", &input);fibonacci(input);printf("%d %d\n", zero, one);} return ..
1. 하둡이란?하둡은 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크이다. 하둡은 구글이 논문으로 발표한 GFS(Google File System)과 맵리듀스(MapReduce)를 2005년 더그커팅이 구현한 결과물이다. 하둡은 분산시스템인 HDFS(Hadoop Distributed File System)에 데이터를 저장하고, 맵리듀스를 이용해 데이터를 처리한다.하둡은 여러 대의 서버에 데이터를 저장하고, 저장된 각 서버에서 동시에 데이터를 처리하는 방식이다. 하둡은 기존의 RDBMS(Oracle,MS-SQL, MySQL등)을 대치하는 것이 아니다. 즉 트랜젝션이나 무결성을 보장해야하는 데이터처리에는 적합하지 않다. 하둡은 배치성으로 데이터를 저장하고 처리하는데 적합한 시스템이다...
그리드 컴퓨팅은 모든 컴퓨팅 기기를 하나의 초고속 네트워크로 연결하여, 컴퓨터의 계산능력을 극대화시키는 차세대 디지털 신경망 서비스를 말한다. 쉽게 말해 수많은 컴퓨터를 하나로 묶어 같은 작업을 공동으로 수행하게 하는 것인데, 다른 말로 ‘분산 컴퓨팅’이라고도 불린다. 분산된 컴퓨터 자원을 광통신 등 초고속 네트워크로 연결한 뒤 프로세서(중앙처리장치, CPU)에 유휴자원(사용되지 않는 능력)이 발생할 경우 이를 한데 모아 특정 작업에 집중시켜 작업 속도를 무한정 향상시킬 수 있는 것이다. 따라서 이를 사용하면 1대의 컴퓨터를 이용하는 것보다 연산처리 능력과 회선 속도가 향상되기 때문에 슈퍼컴퓨터의 능력을 발휘할 수 있게 된다.그리드 컴퓨팅은 '네 것도 내 것, 내 것도 네 것'이라는 개념 아래 탄생한 기..
메시지 전달 인터페이스(Message Passing Interface, MPI)는 분산 및 병렬 처리에서 정보의 교환에 대해 기술하는 표준이다. 병렬 처리에서 정보를 교환할 때 필요한 기본적인 기능들과 문법, 그리고 프로그래밍 API 에 대해 기술하고 있지만 구체적인 프로토콜이나 각각의 구현에 대한 것에 대해서는 기술하지 않는, 하나의 거시적인 테두리를 정해주는 표준으로 이해할 수 있다. 실제적인 MPI 애플리케이션은 서로 정보를 주고받는 여러개의 프로세스들로 이루어져 있는데, 이 각각의 프로세스들은 MPI 애플리케이션이 구동될 때에 모두 병렬적으로 시작된다. 이 각각의 프로세스들은 모두 하나의 문제를 풀기위해 한 프로세스에서 다른 프로세스로 데이터와 정보들을 필요에 따라 서로 주고 받게 된다. 이러한 ..
1. Selection Sort1) 개념각 루프마다 - 최대의 원소를 찾는다. - 최대의 원소와 맨 오른쪽 원소를 교환한다. - 맨 오른쪽 원소를 제외한다. 하나의 원소만 남을 때 까지 위의 루프를 반복한다.[출처: 권오흠, 영리한 프로그래밍을 위한 알고리즘 강좌] 2) PseudocodeselectionSort(A[ ], n){ ▷배열 A[1...n]을 정렬한다.for last ← n downto 2 { -------------------------------①A[1...last] 중 가장 큰 수 A[k]를 찾는다 -----------------------②A[k] ↔ A[last] ▷ A[k]와 A[last]의 값을 교환 -------------------------③}} 3) 수행시간①의 for 루..
Apache Hadoop의 간단 정리Apache Hadoop이란 무엇인가?Apache Hadoop은 빅 데이터 산업 발전의 원동력이 되어왔습니다. Hive나 Pig같은 관련된 기술들에 대해서도 종종 들어보셨을 것입니다. 하지만 이것이 무엇이고, 왜 여러분들은 Oozie나 Zookeeper, Flume처럼 이상한 이름을 가진 것들을 써야 하는 것일까요?Hadoop은 데이터의 구조에 상관없이, 저렴한 비용으로 큰 데이터를 처리할 수 있게 해줍니다. 여기서 우리가 말하는 ‘크다’는 의미는, 10-100 기가바이트, 그 이상을 말합니다. Hadoop을 사용하는 방법은 우리가 전부터 행해오던 방식들과 어떻게 다를까요?비용의 문제가 있지만, 기존에 존재하는 엔터프라이즈 데이터 웨어하우스와 관계형 데이터베이스는 구조..
[먼저 맵리듀스(mapreduce) 알아보기] Mapreduce vs RDBMS Mapreduce는 간단히 애드혹 분석을 위해 일괄 처리 방식으로 전체 데이터셋을 분석할 필요가 있는 문제에 적합하다.RDBMS(관계형 데이터베이스 관리 시스템)은 포인터 쿼리와 업데이트에 적합한데, 상대적으로 적은 양의 데이터를 낮은 지연 시간에 검색하고 업데이트하기 위해 데이터셋을 색인한다. Mapreduce는 데이터를 한 번 쓰면 여러 번 읽는 응용프로그램에 적합하고 반면에 RDBMS는 지속적으로 업데이트되는 데이터셋에 적합하다. 다음 표는 RDBMS와 Mapreduce 비교를 나타내는 표이다. Mapreduce와 RDBMS의 또 다른 차이는 연산하는 데이터셋 구조의 개수다. RDBMS구조화된 데이터(structured..
1. 맵리듀스 개념맵리듀스 프로그래밍은 맵(Map)과 리듀스(Reduce)라는 두 가지 단계로 데이터를 처리한다.맵(Map)은 입력 파일을 한 줄씩 읽어서 데이터를 변형(transformation)하며, 리듀스(Reduce)는 맵의 결과 데이터를 집계(aggregation)한다.특별히 애드혹 분석을 위해 일괄 처리 방식으로 전체 데이터 셋을 분석할 필요가 있는 문제에 적합하다. [출처: http://www.slideshare.net/kwnam4u/hadoop-38481079] 2. 맵리듀스 아키텍처 1) 시스템 구성- 맵리듀스 시스템은 클라이언트, 잡트래커, 태스크트래커로 구성된다. [출처: http://zetawiki.com/] - 클라이언트 : 클라이언트는 사용자가 실행한 맵리듀스 프로그램과 하둡에서..