RDMA Atomic Verb란?
RDMA 기술의 기능 중 하나로, 네트워크를 통해 remote memory에 atomic operations(원자적 연산)을 수행할 수 있게 한다.이는 여러 스레드나 프로세스가 동시에 접근하더라도 data consistency를 유지하는 연산을 의미한다.
* 성공한 경우, remote는 알아챌 수 없다. 실패한 경우는, remote는 비동기 에러가 올라간다. 이때 비동기 에러(asynchronous error)는 Infiniband verbs에 메커니즘으로 제공되며, ibv_get_async_event()를 호출하는 것으로 얻을 수 있거나 select()나 epoll()로 기다릴 수 있다.
- Fetch-and-Add (FAA)
- 원격 메모리에서 값을 읽고, 지정된 값을 더하고 업데이트하는 연산
- 'memory address', '증분값' 2가지를 보낸다.
- Compare-and-Swap (CAS)
- 원격 메모리에서 값을 비교하고 조건이 맞으면 새로운 값으로 교체
- 'memory address', '현재값', '변경값' 3가지를 remote에 보낸다.
- Swap
- 원격 메모리의 값을 교체하고 기존 값 반환
- Fetch-and-Op
- 지정된 연산을 수행한 후 결과 반환
Reference
- Infiniband 재전송 제어 이해
https://www.nminoru.jp/~nminoru/network/infiniband/iba-retransmission.html
'연구 > 주제 없음' 카테고리의 다른 글
Optimizing AI/ML and HPC Workloads: Exploring RDMA (RoCEv2) for High-Performance (0) | 2024.09.06 |
---|---|
[TIL] Paxos? Raft? (0) | 2024.07.18 |
[TIL] Consistency Models for concurrent systems (0) | 2024.07.16 |
[TIL - 20240703] Turing complete란? (1) | 2024.07.03 |