일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- POD
- CUDA
- sycl
- 반도체기초
- nvidia
- HA
- jhVM
- 클라우드
- GPU
- 쿠버네티스
- 반도체
- jhDNN
- Qubit
- Compression
- stl
- kubernetes
- DRAM
- dnn
- cloud
- flash_memory
- C++
- quantum_computing
- SpMM
- 딥러닝
- 양자역학의공준
- deep_learning
- Semiconductor
- CuDNN
- FPGA
- convolution
- Today
- Total
목록전체 글 (143)
Computing

Lease 개념과 lock과의 비교 분산컴퓨팅 분야에서 자주 사용되는 lease[1](리스, [ liːs ])란 개념은 lock과 유사한데, lease는 그것을 획득한 프로세스(=lease holder)에게 해당 lease와 연관된 자원의 독점을 보장해주는 도구[2]이다. lock과의 유일한 차이점이라면 주어진 시간 동안에만 holder에게 독점적 권한을 준다는 점이다. 주어진 시간이 만료되면(expired) lease는 자동으로 해제되고 다른 프로세스가 획득할 수 있게 된다. 전통적인 lock은 lock을 획득한 프로세스가 명시적으로 해제(release)할 때까지 유지된다. 이러한 전통적인 lock에게 치명적인 단점이 있으니, lock을 획득한 프로세스가 어떠한 오류에 의해 lock을 release하지..

이전글 - Kubernetes 고가용성(HA) (1): 고가용성과 Kube Master의 고가용성 - Kubernetes 고가용성(HA) (2): kubeadm을 통한 고가용성 배포 이전 글에서 쿠버네티스 클러스터의 고가용성을 위한 Control plane(Master, 마스터) 다중화에 대해서 정리하고 간단한 Control plane 다중화 배포 실습을 진행하였다. 이전 실습에서는 HAProxy[2]를 사용하여 마스터간 로드 밸런싱을 구현하였고 이를 통해 마스터들의 API 서버간의 로드 밸런싱을 달성하였다. 실습을 간단히 정리하자면 다음과 같다. 3대의 마스터 A, B, C를 사용하는 환경에서 HAProxy를 A에 설치하였다(A가 Load Balancer 역할). 그리고 A의 36443 포트로 들어오는..

이전글 - Pod 네트워크 (1) : Service 필요성과 개념, 종류 (ClusterIP, NodePort, LoadBalancer) - Pod 네트워크 (2) : Service 내부 구현 분석 (kube-proxy와 iptables) - Pod 네트워크 (3) : kube-proxy와 CNI plugin 차이 이전 포스터에서 Pod를 내, 외부 네트워크에 공개하는 Service 개념에 대해서 정리하였다. 이번 포스터에서는 Service들 중 LoadBalancer type Service의 개념과 이것을 사용하기 위해 필요한 MetalLB에 대해서 정리하고자 한다. Load Balancing과 Load Balancer Load Balancing, 부하 분산[2]은 여러 개의 프로세싱 유닛(CPU co..
오늘 포스트에서는 goroutine에 대한 간략한 설명과 함께, goroutine들은 자신이 생성된 함수의 local variable을 어떻게 참조할 수 있는 지에 대해서 정리해보고자 한다. Goroutine Goroutine은 Go runtime에 의해 관리되는 가벼운(lightweight) thread이다[1]. Thread라는 용어가 이미 통용되고 있고, thread와는 뭔가 차이점이 있기에 새로운 용어를 붙였다고 한다[2]. 다만 역할만 보자면 thread와 동일한 기능을 수행한다고 생각하면 될 것 같다. 즉 goroutine간에는 비동기적 실행이 가능하여 여러 작업(함수)를 concurrently 실행시킬 수 있다. 또한 thread와 마찬가지로 모든 goroutine들은 memory space..
어쩌다보니 Go programming language(Go, Golang)[1]를 사용할 일이 생겨 공부를 시작하게 되었다. 새로운 프로그래밍 언어를 배움에 있어, 그 언어가 왜 만들어졌고(필요성), 어떤 장점이 있고, 어디 분야에서 자주 쓰이는 지 아는 것이 매우 중요하다고 생각한다. 특히 Go는 특정 기업(Google)에서 비교적 최근에 만들어졌기에 개발하는 데에 분명 이유가 있을 것이다. 따라서 오늘은 Go를 처음 배우는 입장으로서 왜 Go를 사용해야 하는 지, 그 장점에 대해서 ChatGPT를 통해 배워보고자 한다. 처음 공부하며 정리해나가는 글이기에 틀린 내용도 있을 것이다. 최근 프로그램을 개발하는 과정에서 ChatGPT[2]를 사용하는 경우가 종종 있다. 다행히도 아직까지는 잘못된 답변을 생..

HTTP vs. HTTPS HTTP(HyperText Transfer Protocol)는 HTML(일반적인 웹사이트 문서)와 같은 하이퍼미디어를 전송하기 위한 통신규약(Protocol)을 의미한다. 이를 통해 크롬과 같은 웹브라우저가 웹서버와 통신한다. HTTPS(HTTP over Secure Socket Layer)는 이름에서 알 수 있듯이 HTTP 통신에 보안(Secure) 기능이 추가된 통신규약이다. Fig 1.은 HTTP 통신과 HTTPS 통신의 차이를 보여주는 그림이다. 컴퓨터1과 웹서버1 사이에는 HTTP 통신을, 컴퓨터2와 웹서버2 사이에는 HTTPS 통신을 한다. 컴퓨터에서 웹서버로 비밀번호를 전달해야 하는 경우가 있다고 하자. HTTP 통신은 비밀번호를 어떠한 암호화 없이 그대로 웹서버로..

NAND Flash Memory Cell NAND Flash Memory의 Cell은 "1" 혹은 "0"이라는 정보 하나(bit)를 저장하는 SSD의 가장 최소 단위이다. 이러한 Cell들이 수많이 모여 몇백GB짜리 SSD를 형성한다. Cell 하나에 대한 자세한 내용은 이전 글 1(Flash memory), 2(NAND vs. NOR)에서 정리하였다. 오늘은 이 Cell들이 어떻게 구조화되어 SSD를 형성하는 지에 대해서 정리하고자 한다. NAND Flash Memory Architecture Overview Fig 2.는 SSD 디바이스의 내부 모습을 보여주는 그림이다. Fig 2.에서 확인할 수 있듯이 SSD는 Controller, DRAM chip, NAND chip 등의 다양한 반도체 칩들을 포..

Flash Memory Cell 이전 포스터에서 Flash memory cell에 대해서 대하여 정리하였다. 오늘은 flash memory cell들의 배열 방식에 따라 구별되는 NAND Flash memory와 NOR Flash memory에 대해서 정리해보고자 한다. 시작하기 앞서 간단히 Flash memory의 cell에 대해서 정리하자면 Fig 1.과 같다. Flash memory cell은 Fig 1.과 같이 Transistor와 비슷한 형태를 가지지만, 추가적으로 Float(ing) Gate(플로팅 게이트)가 존재한다. 이 플로팅 게이트가 데이터를 영구적으로 저장하는 역할을 수행한다. 플로팅 게이트는 위아래로 부도체인 산화막으로 감싸져 있다. 따라서 전자가 플로팅 게이트 안으로 혹은 밖으로 이..