총 70개
-
병렬프로그래밍 CUDA 프로그래밍 과제2 - Matrix multiplication2025.05.061. CPU를 이용한 행렬 곱셈 계산 CPU로 처리해서 행렬 곱 계산하는 코드를 제공하였습니다. 행렬 크기를 입력받아 CPU에서 행렬 곱셈을 수행하고 소요 시간을 측정하였습니다. 행렬 크기가 커질수록 CPU에서의 연산 시간이 기하급수적으로 늘어나는 것을 확인할 수 있습니다. 2. GPU를 이용한 행렬 곱셈 계산 GPU로 처리해서 행렬 곱 계산하는 코드를 제공하였습니다. 행렬 크기를 입력받아 GPU에서 병렬 처리를 통해 행렬 곱셈을 수행하고 소요 시간을 측정하였습니다. 행렬 크기가 커질수록 GPU가 CPU보다 더 빠른 연산 속도를 보...2025.05.06
-
병렬컴퓨터구조론 개정판 6장 연습문제 풀이2025.05.061. 병렬 컴퓨터 구조 병렬 컴퓨터 구조에 대한 다양한 연습문제들을 다루고 있습니다. 6.1절에서는 병렬 프로세서 구조와 관련된 문제들을, 6.2절과 6.3절에서는 상호연결망과 메모리 시스템에 대한 문제들을, 6.4절에서는 파이프라인 기법과 관련된 문제들을, 6.5절과 6.6절에서는 SIMD 및 MIMD 구조에 대한 문제들을, 6.7절과 6.8절에서는 병렬 프로그래밍과 성능 분석에 대한 문제들을, 6.9절과 6.10절에서는 병렬 알고리즘과 관련된 문제들을 다루고 있습니다. 1. 병렬 컴퓨터 구조 병렬 컴퓨터 구조는 여러 개의 프로세...2025.05.06
-
병렬프로그래밍 CUDA 프로그래밍 과제1 - Vector Addition2025.05.061. CPU를 이용한 벡터 덧셈 계산 CPU로 처리해서 벡터 합을 계산하는 코드를 제공하였습니다. 이 코드는 벡터의 크기를 입력받아 각 벡터의 원소들을 더하여 결과를 생성합니다. 시간 측정을 통해 벡터의 크기가 커질수록 연산 시간이 늘어나는 것을 확인할 수 있습니다. 2. GPU를 이용한 벡터 덧셈 계산 GPU로 처리해서 벡터 합을 계산하는 코드를 제공하였습니다. 이 코드는 CPU 코드와 유사하지만 CUDA 함수를 사용하여 GPU에서 병렬 처리를 수행합니다. 시간 측정 결과, 벡터의 크기가 10,000,000 이상일 때부터 GPU ...2025.05.06
-
쓰레드 구현 모델과 쓰레드 폴링 조사2025.11.161. 쓰레드 구현 모델 쓰레드 구현 모델은 프로그램에서 동시에 실행되는 여러 작업의 흐름을 관리하는 방식입니다. 다중 쓰레드 모델은 하나의 프로세스에서 다수의 쓰레드가 동시에 실행되며, 쓰레드 풀 모델은 미리 정해진 쓰레드 풀에서 쓰레드를 가져와 작업을 처리합니다. POSIX, Windows, Java 등 다양한 구현 모델이 존재하며, 쓰레드 풀 모델은 쓰레드 생성과 삭제에 따른 오버헤드를 줄이고 쓰레드 재사용이 가능합니다. 2. 쓰레드 폴링 쓰레드 폴링은 쓰레드를 재사용하여 성능을 향상시키는 기술입니다. 쓰레드 생성과 소멸에 따른...2025.11.16
-
파이썬 Thread Programming 소개2025.11.121. 스레드(Thread)의 개념 스레드는 프로세스의 실행 단위이다. 파이썬 프로그램은 기본적으로 하나의 메인 스레드에서 순차적으로 코드를 실행한다. 병렬 실행을 위해서는 별도의 스레드를 생성해야 한다. 파이썬에서 멀티 스레드 구현은 threading 모듈(고수준) 또는 thread 모듈(저수준)을 사용하며, thread 모듈은 deprecated되어 threading 모듈 사용을 권장한다. 2. Thread Programming의 장단점 장점으로는 전역변수를 이용한 메모리 공유로 효율적인 메모리 사용이 가능하고, 철저한 작업 분리...2025.11.12
-
쓰레드 구현 모델과 쓰레드 폴링에 대한 조사2025.01.271. 쓰레드 구현 모델 쓰레드 구현 모델에는 다중 쓰레드 모델, 많은 쓰레드 모델, 쓰레드 풀 모델 등이 있다. 다중 쓰레드 모델은 하나의 프로세스 내에서 여러 쓰레드가 동시에 실행되어 작업을 병렬로 처리하여 성능을 향상시킨다. 많은 쓰레드 모델은 다중 쓰레드 모델과 유사하지만, 생성된 쓰레드 수가 많아질수록 시스템 자원 제한으로 인해 실제 동시 실행되는 쓰레드 수가 제한될 수 있다. 쓰레드 풀 모델은 미리 정의된 쓰레드 풀에서 필요한 쓰레드를 가져와 작업을 처리하고, 사용이 끝난 쓰레드를 반환하여 다시 활용한다. 이 방식은 쓰레드...2025.01.27
-
임계영역과 임계영역을 해결하기 위한 방법2025.01.191. 임계 영역 임계 영역은 다수의 프로세스 또는 스레드가 동시에 액세스할 때 데이터 일관성을 유지하거나 원하는 결과를 얻기 위해 반드시 한 번에 하나의 프로세스 또는 스레드만이 액세스해야 하는 코드의 부분을 말한다. 데이터를 일관성 있게 유지하는 것이 중요한 이유는, 임계 영역에서 발생할 수 있는 경쟁 상태(Race Condition)와 같은 문제 때문이다. 따라서, 임계 영역에서 데이터 접근을 제어하고 동기화하는 것이 필요하다. 2. 경쟁 상태 (Race Condition) 경쟁 상태는 두 개 이상의 프로세스나 스레드가 공유 데...2025.01.19
-
스레드의 상태변화의 특징에 대해 토론하시오2025.01.271. 스레드의 상태 변화 스레드는 생성(create) 단계에서 시작하며, 이후 작업을 준비하게 되면 준비(ready) 상태로 전환됩니다. 이 단계에서는 다른 스레드들과 함께 CPU 할당을 기다리며 대기하게 됩니다. 스케줄러는 스레드의 우선순위, 시간 할당 등을 고려하여 CPU를 할당하며, 이 과정에서 스레드는 실행(running) 상태로 들어가 명령어를 처리하게 됩니다. 실행 중인 스레드는 입출력 작업이나 특정 조건이 충족되길 기다려야 할 때, 대기(waiting) 상태로 전환될 수 있습니다. 대기 중인 스레드는 필요한 자원이 사용...2025.01.27
-
운영체제 병행프로세스와 상호배제 레포트 과제제출 시험대비2025.05.021. Test-and-Set Test-and-Set은 동기화 하드웨어로 상호배제를 해결하는 명령어 개념입니다. 공유 변수를 수정하는 동안 인터럽트 발생을 억제하여 임계 영역 문제를 간단하게 해결할 수 있지만, 실행 효율이 현저히 떨어지고 스레드 간 Lock 경쟁이 발생할 수 있습니다. 이를 해결하기 위해 검사와 수정을 원자적으로 수행하여 임계 영역을 해결하는 방식으로 도입되었습니다. 2. 세마포 세마포는 신호기, 깃발이라는 뜻으로 각 프로세스에 제어 신호를 전달해 순서대로 수행하도록 합니다. P와 V 연산을 통해 동기화를 유지하고 ...2025.05.02
-
마이크로프로세서응용 ATmega128 Module, 노트북과 ISP 이용한 LED 제어 결과보고서2025.01.241. 프로그래밍 언어 프로그래밍 언어는 사람이 컴퓨터에게 어떤 처리 작업을 수행시키기 위한 특정 형식을 갖춘 일련의 순차적인 작업지시서라고 볼 수 있습니다. 컴퓨터는 기계어만 실행 가능하기 때문에 우리가 사용하는 프로그래밍 언어로는 컴퓨터가 알지 못하므로, 기계어로 변환시키는 번역 프로그램을 이용하여 기계어로 변환하고 운영체제와 연결하여 실행 가능한 모드로 변환해서 실행시켜야 합니다. 2. 컴파일러 컴파일러는 고급언어로 쓰여진 프로그램을 컴퓨터에서 실행될 수 있는 형태의 목적 프로그램으로 바꾸어 주는 번역 프로그램입니다. Cross...2025.01.24
