분산 시스템 9

Distributed System - 10. Distributed Learning Algorithms

* Distributed learning- 왜 분산 학습을 하여야할까?ex) On-device learning만약 모델이 개인 데이터를 학습하여 맞춤형 서비스를 제공해야한다고 생각해보자. 이 경우 Privacy 문제 때문에 Server로 데이터를 보내는 것은 문제가 될 수 있다. 1. 데이터의 분산성 : 데이터는 센서, 기기, DB 등 다양한 곳에 분산되어 존재하지만, 보안 등의 이유 때문에 고립되어있을 수 있다.2. AI 시스템의 적응 필요성 : AI 시스템은 센서에서 수집된 새로운 데이터에 지속적으로 적응해야할 필요가 있다. 즉, 개인적인 데이터를 다룰 일이 필수적으로 생긴다.=> 분산된 여러 client에서 데이터를 활용해 모델을 자체적으로 학습할 수 없을까?1. Federated Learning ..

개인 공부 2024.12.06

Distributed System - 9. Distributed Training

1. Motivation최근에는 분산 컴퓨팅의 활용 도메인에 AI를 위한 HPC 기능을 제공하는 것이 추가되고 있다. 그 이유에는 Transformer의 등장 이후 가속화된 모델 크기 비대화가 큰 지분을 차지한다.모델을 사용한단 것은 크게 Training - Inference의 단계가 존재하게 되는데,  Training의 단계에서 리소스 요구량은 단일 노드가 감당하기에는 불가능에 가까워지는 것이 현실이다. GPT-3 175B는 A100 기준으로도 단일로 3100000의 비현실적인 시간이 소요되는 것을 확인할 수 있다. * Data parallelism따라서 결국에는 여러 GPU가 학습을 병렬적으로 처리하게 된다. 이 병렬 방법중 Data parallelism이란 데이터 자체를 분할하여 각 GPU에게 할당..

개인 공부 2024.12.05

Distributed System - 8. Fault Tolerance

1. Introduction* DependabilityComponent가 서비스를 client에게 제공하기 위해, 다른 Component의 서비스에 의존할 수도 있다. 즉, 하나의 component는 완전히 독립적으로 동작하지 않을 수도 있으며, 다른 component와의 상호작용에 따라 동작이 달라질 수 있다.정의 : component C가 component C*에 의존한다고 할 때, C*의 동작이 올바르게 수행하지 않으면 C 역시 장애가 발생한다. (여기서 component는 프로세스나 채널을 의미한다.)=> 이러한 Dependability의 요구사항은 크게 4가지가 존재한다.1. Availability : 시스템의 사용 가능 상태가 얼마나 잘 유지되는지를 의미.(얼마나 준비상태를 유지할 수 있는지...

개인 공부 2024.12.04

Distributed System - 7. Consistency & Replication

1. Reasons for replication복제(Replication)이란 데이터를 여러 복제본(replica)로 분산하여 저장하는 것을 의미한다.복제를 함으로써 얻을 수 있는 효과는 크게 2가지가 있다.1. 성능 : 동일한 데이터에 대해 여러 클라이언트가 동시에 요청을 처리할 수 있어 성능이 향상된다.2. 확장성(Scalability) : replica를 추가함으로써 시스템의 capacity를 확장할 수 있다. (Task 분산) 그러나 복제를 하면 자연스럽게 따라오는 문제가 있는데, 바로 replica 끼리의 consistency 문제이다.replicas consistent를 지키기 위해서, Write 작업과 다른 작업이 동시에 일어날 때 처리를 해줄 규칙이 필수가 된다는 것이다.1. Read-Wr..

개인 공부 2024.12.02

Distributed System - 5. Naming

1. Names, identifiers and addresses- Name : entity를 가리키는 bit나 char의 나열- Entity : Name이 붙을 수 있는 모든 것=> Entity에 접근하기 위해서는 Access Point(AP)를 통해야하며, 이 AP도 역시 entity이다.- Address : AP의 Name- Naming system : 어떻게 각 Entity의 name을 결정할 것이며 이러한 name을 가지고 어떻게 해당 entity까지 접근할지, 그리고 그 name 들을 어떻게 관리, 유지할지를 결정할지를 정하는 것이다. - Identifiers(ID)란?1. Pure name : 이름에 아무런 의미가 없는 형태.2. Identifier : entity와 1대1 매칭이 되며, 재사..

개인 공부 2024.10.23

Distributed System - 4. Communication

1. Layered protocols- 기본적인 Layered protocols로써 OSI 7계층이 있다.-> 자세한 것은 네트워크에서 배우기에 가볍게 말하면 물리,데이터링크,네트워크,전송,세션,표현,응용 계층으로 통신 프로토콜을 계층화한 것이다. -> 통신의 본질은 Message를 교환하는 것이고, 해당 Message를 보내고자 할 때, Client의 응용 계층부터 물리 계층 까지 Message가 내려가며 Header를 추가한다. 이후 목적지의 물리 계층부터 응용 계층까지 헤더를 확인하며 최종 Message를 수신 처리하는 것이다. * Distributed System에서의 Layered protocols1. Physical layer : "bit"라는 가장 기본적인 데이터 단위를 실제로 전송하는 방식..

개인 공부 2024.10.20

Distributed System - 3. Processes

1. Threads- Processor : Instruction 집합을 자동적으로 순서대로 실행할 수 있는 것.- Process : SW processor 면서 여러가지 Thread를 실행하는 context를 가진 프로그램 실행의 단위- Thread :  가장 작은 단위의 SW processor. 실행될 수 있는 가장 작은 Instruction 단위. Thread를 저장한다는 것은 현재 실행을 멈추고 그에 관한 레지스터 data들을 다음 stage를 대비하여 저장하는 것을 의미한다. * Context switching- Processor Context : Instruction Series을 실행하기 위해 저장하고 있는 레지스터 값들의 collection. (Stack pointer, addressing ..

개인 공부 2024.10.07

Distributed System - 2. Architectures

1. Architectures- Distributed System의 아키텍처를 나누는 기준으로는 여러가지가 있을 수 있는데, 그 기준은 다음과 같다.1. Replaceable : Component들이 잘 정의된 인터페이스를 가져서 다른 component와 상호작용이 가능한가?2. Connectivity : Component 간의 연결이 어떻게 되어있는가?3. Data exchange : Component 간 데이터 교환법이 어떻게 되는가?4. Mechanism : Component와 Connector들이 시스템 상에서 어떻게 구성되는가?(* Connector : Connector는 Component 간 통신 등을 중재하는 Component이다. 여기서 통신은 procedure call, messaging..

개인 공부 2024.10.01

Distributed System - 1. Introduction

1. What is a distributed system?분산 시스템이란 종단 user들에게 하나의 coherent system으로 보이는 Autunomous computing element들의 collection을 의미한다.Autonomous computing element(node)란 물리적으로 독립된 하드웨어나 프로세스를 의미한다. 즉, 메모리 등 자원 공유가 안되는 상태이다.Single coherent system 이란 하나의 시스템으로 인지되는 시스템을 의미하며, 이를 위해 노드들은 협력이 필요하다.각 노드는 물리적으로 독립되어있으므로 각자의 시간을 가지고 작동하며 phsycal global clock이 없고, 동기화 및 조정 문제를 해결해야한다.즉, Collection of nodes는 어떻게..

개인 공부 2024.09.30