본문 바로가기

분류 전체보기465

Graph Search (Breadth-First Search) References Programming Massively Parallel Processors Contents Breadth-First Search (BFS) A Sequential BFS Function A Parallel BFS Function Optimization 이번에 살펴 볼 병렬 패턴은 Graph Search입니다. 그래프는 개체(entity)간의 관계(relation)를 나타내는 자료구조이며, 이 개체(entity)는 vertices(정점)으로 표현하고 관계는 edges(간선)으로 표현합니다. 세상의 많은 중요한 문제들은 아주 큰 스케일의 그래프 문제로 볼 수 있습니다. 예를 들면, 소셜 네트워크나 네비게이션 등이 있습니다. 그래프는 알고보면 희소 행렬(sparse matrix)와도 관련이.. 2021. 12. 30.
[Swift] Methods References https://docs.swift.org/swift-book/LanguageGuide/Methods.html Contents Instance Methods mutating Type Methods 메소드(methods)는 특정한 타입과 연관된 함수입니다. 클래스, 구조체, 열거형은 인스턴스 메소드(instance methods)를 정의할 수 있는데, 이는 주어진 타입의 인스턴스에서 특정한 태스크나 기능을 수행합니다. 또한, 타입 메소드(type methods)를 정의할 수 있는데, 이는 타입 그자체와 연관되어 있습니다. Instance Methods 인스턴스 메소드는 특정 클래스, 구조체, 열거형의 인스턴스에 종속된 함수입니다. 이 메소드들은 그 인스턴스들의 기능을 서포트하는데, 인스턴.. 2021. 12. 26.
[Swift] Properties References https://docs.swift.org/swift-book/LanguageGuide/Properties.html Contents Stored Properties Computed Properties Property Observers Property Wrappers Global and Local Variables Type Properties [Swift] Structures and Classes (구조체와 클래스) 구조체 및 클래스에 이어서 속성에 대해 알아보겠습니다. 속성(프로퍼티, properies)는 특정 클래스, 구조체 또는 열거형과 연관된 값입니다. 속성의 종류에는 여러가지가 있는데, 저장 속성(Stored properties)는 인스턴스의 일부로 상수나 변수 값을 저장하는 것.. 2021. 12. 25.
[Swift] Structures and Classes (구조체와 클래스) References https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html Contents 구조체와 클래스 비교 Structures and Enumerations are Value Types Class are Reference Types 구조체(Structures)와 클래스(Classes)는 범용적(general-purpose)이고 유연한 구성 요소입니다. 상수나 변수, 함수를 정의하는 문법을 동일하게 사용하여 속성(프로퍼티, property)와 메소드(method)를 정의하여 구조체나 클래스에 기능을 추가할 수 있습니다. 다른 프로그래밍 언어와 달리 Swift는 커스텀 구조체나 클래스를 위해 인터페이스와 구현 파일을 분리하여 .. 2021. 12. 24.
Parallel Merge Sort (merge operation) References Programming Massively Parallel Processors Contents A Sequential Merge Algorithm A Parallelization Approach : co-rank CO-RANK function Implementation A Basic Parallel Merge Kernel A Tiled Merge Kernel A Circular-Buffer Merge Kernel 이번 포스팅에서 살펴 볼 병렬 패턴은 ordered merge operation 입니다. 이는 두 개의 정렬된 리스트를 받아서 하나의 정렬된 리스트를 생성합니다. Ordered merge operation은 정렬 알고리즘으로 사용될 수 있습니다. 정렬은 컴퓨터 공학의 수 많은 분.. 2021. 12. 24.
[Swift] Enumerations (열거형, 열거자) References https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html Contents Enumeration Syntax Maching Enumeration Values with a Switch Statement Iterating over Enumeration Cases Associated Values Raw Values Recursive Enumerations Enumeration(열거형)은 관련된 값들의 그룹에 대한 공통적인 유형을 정의하고 코드 내에서 type-safe한 방식으로 해당 값으로 작업할 수 있도록 합니다. C에 익숙하다면 C 열거형이 정수 값들의 집합에 이름을 할당한다는 것을 알고 있습니다. Swift의 열거형은 훨씬 더.. 2021. 12. 22.
[Swift] Closures (클로저) References https://docs.swift.org/swift-book/LanguageGuide/Closures.html Contents Closures Closure Expressions Trailing Closures Capturing Values Closures Are Reference Types Escaping Closures Autoclosures 클로저(Closures)가 꽤 익숙하지는 않아서, 다른 부분을 먼저 보고 공부를 해보려고 했습니다만.. 일단 그냥 진행해보기로 했습니다. 조금 내용이 부족할 수도 있습니다.. ! 클로저는 Swift에서만 사용되는 개념은 아니고, 함수형 프로그래밍 언어에서 나타나는 중요한 특성이라고 합니다. Swift의 클로저는 C나 Objective-C의 블.. 2021. 12. 22.
Sparse Matrix Computation References Programming Massively Parallel Processors Contents Sparse Matrix, CSR Parallel SpMV Using CSR ELL Format Hybrid Approach to Regulate Padding 본문에 사용된 코드는 아래 링크에서 확인하실 수 있습니다. https://github.com/junstar92/parallel_programming_study/blob/master/CUDA/sparseMatrixVectorMul/SpMV.cu GitHub - junstar92/parallel_programming_study: Study parallel programming - CUDA, OpenMP, MPI, Pthread Study p.. 2021. 12. 21.
Parallel Histogram References Programming Massively Parallel Processors Contents Histogram atomicAdd의 사용 Memory Coalescing을 고려한 Histogram 커널 Atomic 연산에 의한 시간지연 문제 Privatized Histogram Kernel 히스토그램(histogram)은 데이터 항목의 빈도를 연속적인 숫자 간격으로 표시하는 것입니다. 히스토그램의 일반적인 형태에 데이터 항목의 빈도는 수평축에 상승하는 직사각형 또는 막대의 높이로 표시됩니다. 예를 들어, "programming massively parallel processors"라는 문장에서 알파벳의 빈도를 표시하기 위해서 히스토그램이 사용될 수 있습니다. 간단하게 살펴보기 위해서 문장.. 2021. 12. 18.
[Swift] Functions (함수) References https://docs.swift.org/swift-book/LanguageGuide/Functions.html Contents Defining and Calling Functions Function Parameters and Return Values Function Argument Labels and Parameter Name Function Types Nested Functions Functions(함수)는 특정 작업을 수행하는 코드 덩어리입니다. 함수가 수행하는 작업을 식별하는 이름을 지정하고, 해당 작업을 수행할 때 함수 이름을 호출(call)하여 사용합니다. Swift의 통합 함수 문법은 유연해서 매개변수 이름이 없는 단순한 C 스타일의 함수부터 Objective-C 스타일 .. 2021. 12. 18.