컴퓨터 네트워킹 기술인 이더넷(Ethernet)과 인피니밴드(InfiniBand)의 주요 차이점을 분석하고, 이러한 차이점이 성능에 미치는 영향에 대해서 정리를 했습니다.
이더넷은 범용적인 네트워크 환경에서 널리 사용되는 기술인 반면, 인피니밴드는 고성능 컴퓨팅(HPC), 대규모 데이터 센터 등 특수한 환경에서 요구되는 높은 성능을 제공하기 위해 설계되었습니다. 각 기술의 특징을 비교 분석하여 성능 차이가 발생하는 근본적인 원인을 명확히 제시하고자 합니다.

1. 이더넷(Ethernet) 개요 및 특징

이더넷은 IEEE 802.3 표준으로 정의된 컴퓨터 네트워킹 기술로, Local Area Network (LAN), Metropolitan Area Network (MAN), Wide Area Network (WAN) 등 다양한 환경에서 사용됩니다.

  • 설계 목적: 범용적인 네트워킹 및 다양한 장치 연결 지원
  • 주요 특징:
    • 광범위한 호환성 및 다양한 벤더 지원
    • 유연한 토폴로지 구성 (스타, 트리 등)
    • 비교적 저렴한 비용
  • 전송 방식: 초기에는 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 방식을 사용했으나, 현재는 주로 스위칭 방식을 채택하여 효율성을 높였습니다.
  • 신뢰성: 상위 계층 프로토콜(TCP)에서 오류 복구를 담당합니다.
  • 지연 시간: 스토어 앤 포워드 방식의 스위칭, MAC 주소 테이블 검색 등으로 인해 비교적 높은 지연 시간을 가질 수 있습니다.
  • 대역폭: 지속적인 기술 발전을 통해 높은 대역폭을 제공하며, 현재 최대 800Gbps 상용화 및 1.6Tbps 개발이 진행 중입니다.
  • CPU 부하: 데이터 처리 과정에서 CPU의 개입이 증가할 수 있습니다.

2. 인피니밴드(InfiniBand) 개요 및 특징

인피니밴드는 고성능 컴퓨팅 환경, 서버 간 연결, 고성능 스토리지 시스템 등 낮은 지연 시간과 높은 대역폭을 요구하는 환경을 위해 설계된 인터커넥트 기술입니다.

  • 설계 목적: 고성능 컴퓨팅 (HPC), 서버 및 스토리지 연결, 낮은 지연 시간 요구 환경
  • 주요 특징:
    • 매우 낮은 지연 시간
    • 매우 높은 대역폭
    • 손실 없는(lossless) 전송 보장
    • 하드웨어 기반의 높은 신뢰성 및 QoS (Quality of Service) 제공
  • 토폴로지: 스위치 기반의 패브릭 구조 (Fat Tree, Dragonfly 등)를 통해 고성능을 극대화합니다.
  • 전송 방식: 스위치 기반의 포인트-투-포인트 연결을 통해 효율적인 데이터 전송을 지원합니다.
  • 신뢰성: 하드웨어 레벨에서 혼잡 제어 및 오류 감지/복구 메커니즘을 통해 높은 신뢰성을 보장합니다.
  • 지연 시간: 하드웨어 기반 라우팅 및 병렬 링크 활용으로 매우 낮은 지연 시간을 제공합니다.
  • 대역폭: 초기 설계부터 고대역폭을 목표로 개발되었으며, 현재 최대 400Gbps까지 상용화되었습니다.
  • CPU 부하: RDMA (Remote Direct Memory Access)를 지원하여 데이터 전송 시 CPU 개입을 최소화합니다.

3. 이더넷과 인피니밴드의 성능 차이 및 원인 분석

성능 지표 이더넷 (Ethernet) 인피니밴드 (InfiniBand) 성능 차이 발생 원인
지연 시간 비교적 높음 매우 낮음 설계 목적, 라우팅 방식, 패킷 처리 방식
대역폭 지속적 발전 중 매우 높음 초기 설계 목표, 병렬 링크 활용
신뢰성 상위 계층에서 처리 하드웨어 레벨에서 보장 오류 제어 메커니즘 구현 방식
CPU 부하 상대적으로 높음 매우 낮음 RDMA 지원 여부 및 효율성

 

3.1. 낮은 지연 시간 (Low Latency)

인피니밴드는 고성능 컴퓨팅 환경의 핵심 요구 사항인 낮은 지연 시간을 달성하기 위해 설계되었습니다. 하드웨어 기반의 효율적인 라우팅 메커니즘과 단순화된 패킷 처리 과정을 통해 데이터가 목적지까지 빠르게 도달할 수 있도록 최적화되어 있습니다. 반면, 이더넷은 스토어 앤 포워드 방식의 스위칭과 MAC 주소 테이블 검색 등의 과정에서 불가피하게 지연 시간이 발생할 수 있습니다.

3.2. 높은 대역폭 (High Bandwidth)

인피니밴드는 다중 레인(lane)을 통합하여 사용하는 방식을 통해 높은 대역폭을 제공합니다. 이는 대규모 데이터를 빠르게 처리해야 하는 HPC 환경에서 중요한 이점입니다. 이더넷 역시 지속적인 기술 발전을 통해 대역폭을 향상시키고 있지만, 초기 설계 목표의 차이로 인해 인피니밴드만큼 높은 대역폭을 기본적으로 제공하지는 않습니다.

3.3. 손실 없는 전송 (Lossless Transmission)

인피니밴드는 하드웨어 레벨에서 정교한 혼잡 제어 메커니즘을 구현하여 패킷 손실을 최소화하고 데이터의 무결성을 보장합니다. 이는 데이터 손실이 시스템 전체의 성능 저하로 이어질 수 있는 HPC 환경에서 매우 중요합니다. 이더넷은 초기 설계에서 패킷 손실 가능성을 염두에 두고 상위 계층 프로토콜인 TCP에서 재전송 메커니즘을 통해 오류를 복구합니다.

3.4. RDMA (Remote Direct Memory Access) 지원

인피니밴드는 RDMA를 기본적으로 지원하여 네트워크를 통해 데이터를 전송할 때 CPU의 개입을 최소화합니다. 이는 CPU가 데이터 전송 작업에 소요되는 시간을 줄여 컴퓨팅 자원을 효율적으로 활용할 수 있도록 합니다. 이더넷에서도 RoCE (RDMA over Converged Ethernet)와 같은 기술을 통해 RDMA를 지원하지만, 인피니밴드의 하드웨어 기반 RDMA만큼의 성능을 제공하지 못할 수 있습니다.

3.5. 이더넷 헤더 오버헤드

이더넷 프레임은 데이터를 전송하기 위해 다양한 헤더 정보를 포함합니다.

일반적인 이더넷 II 프레임의 헤더는 14 바이트로 구성되며, VLAN 태깅(802.1Q)이 추가될 경우 18 바이트로 증가합니다. 이 헤더에는 다음과 같은 정보가 포함됩니다.

  • Destination MAC Address (6 바이트): 수신 장치의 물리적 주소
  • Source MAC Address (6 바이트): 송신 장치의 물리적 주소
  • EtherType (2 바이트): 페이로드에 담긴 데이터의 프로토콜 유형 (예: IPv4, IPv6)
  • VLAN Tag (4 바이트, 옵션): VLAN 정보 (802.1Q 태깅 시)

이러한 헤더 정보는 실제 전송되는 데이터 외에 추가적인 오버헤드를 발생시키며, 이는 유효 데이터 전송률을 감소시키고 지연 시간을 증가시키는 요인이 될 수 있습니다. 특히 작은 크기의 패킷이 빈번하게 전송되는 환경에서는 헤더 오버헤드가 전체 성능에 미치는 영향이 커질 수 있습니다.

3.6. 인피니밴드 헤더 오버헤드

인피니밴드의 헤더 구조는 이더넷과 다릅니다.

인피니밴드는 Base Transport Header (BTH)를 포함하며, 이는 약 12 바이트 로 구성됩니다.

또한, 필요에 따라 Remote Access Header (RETH) 등 추가적인 헤더가 사용될 수 있지만, 기본적인 데이터 전송에 필요한 헤더 크기는 이더넷과 유사하거나 더 작을 수 있습니다.

인피니밴드는 효율적인 헤더 설계뿐만 아니라, RDMA를 통해 데이터를 사용자 공간에서 직접 전송하여 운영체제 커널을 거치는 오버헤드를 줄이고, CPU 개입을 최소화합니다. 이는 헤더 오버헤드로 인한 성능 저하를 완화하는 중요한 요소입니다.

3.7. 헤더 오버헤드가 성능에 미치는 영향

네트워크를 통해 전송되는 총 데이터 양은 실제 페이로드 데이터와 헤더 정보를 합한 것입니다. 헤더의 크기가 클수록, 동일한 양의 유효 데이터를 전송하기 위해 더 많은 총 데이터가 네트워크를 통해 이동해야 하므로, 대역폭 효율성이 감소하고 지연 시간이 증가할 수 있습니다.

인피니밴드는 설계 초기부터 고성능을 목표로 헤더 크기를 최적화하고, RDMA와 같은 기술을 통해 전반적인 전송 효율성을 높였습니다. 반면, 이더넷은 범용성을 강조하며 다양한 계층의 프로토콜을 수용하기 위한 헤더 구조를 가지고 있어, 특정 고성능 환경에서는 상대적으로 오버헤드가 크게 느껴질 수 있습니다.

4. 이더넷이 인피니밴드보다 헤더를 더 많이 사용하는 이유

범용성기존 네트워크와의 호환성을 유지하기 위함이며, 다음과 같은 장점들이 있습니다.

4.1. 넓은 호환성 및 유연성:

  • MAC 주소 기반의 주소 체계: 이더넷 헤더는 6바이트의 송신 및 수신 MAC 주소를 포함합니다. 이는 계층 2 (데이터 링크 계층)에서 장치를 식별하고 통신하는 데 필수적입니다. MAC 주소는 전 세계적으로 고유하게 할당되어 다양한 네트워크 환경에서 장치 간의 물리적인 연결과 통신을 가능하게 합니다. 인피니밴드는 서브넷 내에서 로컬 ID를 사용하고, 글로벌 식별을 위해 추가적인 주소 변환 계층이 필요할 수 있습니다.
  • EtherType 필드: 이더넷 헤더의 EtherType 필드(2바이트)는 페이로드에 담긴 상위 계층 프로토콜(예: IPv4, IPv6, ARP)을 명시합니다. 이 필드 덕분에 이더넷은 다양한 프로토콜을 투명하게 전송할 수 있으며, TCP/IP와 같은 인터넷 프로토콜 스택의 기반 기술로 널리 사용될 수 있었습니다. 인피니밴드는 특정 상위 계층 프로토콜에 더 특화된 구조를 가질 수 있습니다.
  • VLAN 태깅 지원: 이더넷 헤더는 선택적으로 4바이트의 VLAN (Virtual Local Area Network) 태그를 포함할 수 있습니다. VLAN 태깅은 물리적인 네트워크 토폴로지와 상관없이 논리적으로 네트워크를 분할하고 관리할 수 있도록 하여 네트워크의 유연성과 보안성을 높입니다. 인피니밴드도 유사한 기능을 제공하지만, 이더넷의 VLAN은 광범위하게 사용되는 표준입니다.

4.2. 기존 인프라와의 통합 용이성:

  • 오랜 역사와 폭넓은 보급: 이더넷은 수십 년 동안 발전해 온 기술로, 전 세계적으로 방대한 설치 기반과 다양한 장비 생태계를 가지고 있습니다. 이더넷 헤더는 이러한 기존 인프라와의 호환성을 유지하며 새로운 기술과 공존할 수 있도록 설계되었습니다.
  • 표준화: IEEE 802.3 표준을 통해 이더넷 헤더 구조와 관련 기능이 명확하게 정의되어 있어, 다양한 제조사의 장비 간 상호 운용성을 보장합니다.

4.3. 상위 계층 프로토콜 지원 용이성:

  • 단순한 데이터 링크 계층 역할: 이더넷은 주로 데이터 링크 계층에서 프레임 전송을 담당하고, 신뢰성 있는 데이터 전송 및 복잡한 기능은 주로 상위 계층 프로토콜(TCP 등)에서 처리합니다. 이더넷 헤더는 이러한 상위 계층 프로토콜을 효율적으로 캡슐화하고 전달하는 데 필요한 기본적인 정보만을 포함하도록 설계되었습니다.

물론, 이러한 장점들은 필연적으로 헤더 오버헤드 증가라는 단점을 동반합니다. 하지만 이더넷의 범용성, 호환성, 그리고 오랜 기간에 걸쳐 구축된 광범위한 생태계는 이러한 오버헤드를 감수할 만한 가치를 제공하며, 이더넷이 오늘날까지도 가장 널리 사용되는 네트워킹 기술로 자리매김하는 데 중요한 역할을 했습니다.
최근에는 고성능 컴퓨팅 환경에서도 이더넷의 성능을 향상시키기 위한 RoCE (RDMA over Converged Ethernet) 와 같은 기술이 개발되어 사용되고 있으며, 이를 통해 이더넷의 활용 범위는 더욱 넓어지고 있습니다.

5. 결론

이더넷과 인피니밴드의 성능 차이는 설계 목적, 전송 방식, 신뢰성 메커니즘, RDMA 지원 여부 등 다양한 요인에 의해 발생합니다. 특히, 이더넷 헤더는 기본적인 주소 정보 외에도 VLAN 태그 등의 추가적인 정보를 포함할 수 있어 오버헤드가 발생하며, 이는 지연 시간 증가 및 대역폭 효율성 저하의 원인이 될 수 있습니다. 인피니밴드는 효율적인 헤더 설계와 RDMA 기술을 통해 이러한 오버헤드를 최소화하고, 고성능 컴퓨팅 환경에서 요구하는 낮은 지연 시간과 높은 대역폭을 제공합니다. 따라서, 네트워크 환경의 특성과 요구 사항을 정확히 파악하여 적합한 네트워킹 기술을 선택하는 것이 중요합니다.

Image 파일을 사용하다가 보면 벡터(Vector)와 비트맵(Bitmap) 방식이라는 용어를 많이 접할 수 있습니다.
벡터와 비트맵 방식에 대한 차이를 자세히 알려면 PPI와 DPI에 대한 차이를 먼저 알고 확인을 하면 이해가 쉬울 것입니다. 하지만 여기서는 단순히 표현 방식과 차이에 대해서만 설명을 하도록 하겠습니다.

- 벡터(Vector) 방식 

벡터방식은 점과 점을 연결해서 이미지를 표현하며 선과 면을 만들어 내는 것입니다.

비트맵의 픽셀과 다르게 크기 조절이나 변형으로도 해상도가 깨지지 않습니다. 아래 비교 사진을 보면 쉽게 이해가 될 수 있습니다. 따라서, 로고, 서체 등에 다양하게 이용되고 있으며 비트맵 방식에 비해 상당히 적은 용량이 사용되는 장점이 있습니다. 대표적 프로그램으로 Adobe Illustrator를 생각하시면 됩니다. 무료프로그램으로는 Inkscape가 있습니다.
UI나 기능상에서 Adobe Illustrator 보다 떨어지고 있지만 무료로 간단한 작업에서는 유용하다고 생각합니다.

Sample vector graphic from FCIT’s collection of Math illustrations on the ClipArt ETC website.


비트맵(Bitmap) 방식

비트맵은 픽셀(Pixel)에 있는 비트의 집합체로 보면 됩니다. 픽셀에 대한 자세한 설명은 따로 하기로 하고 픽셀은 하나 하나가 각기 다른 생상정보를 가지고 있다고 생각하시면 됩니다. 서로 다른 픽셀이 조합되어 하나의 이미지가 되는 것입니다. 비트맵 방식은 이미지에 대한 정교하고 화려한 표현이 가능한 장점을 가지며 픽셀 수가 많아지면 질수록 화질이 좋아질 수 있습니다. 하지만, 용량이 커지고 확대/축소로 인한 화질 문제를 유발할 수 있다는 단점이 있습니다.
대표적 프로그램으로 Adobe Photoshop을 생각하시면 되고 그 밖의 대부분의 Image 편집툴은 비트맵 방식이라고 생각하시면 됩니다.

Sample raster graphic from FCIT’s collection of robot illustrations on the TIM website.

 

비메모리 반도체의 종류에 대해서 의미는 알지만 글이나 설명으로 정의를 내리기 힘든 부분이 있어서 정리를 하려고 합니다. 메모리 반도체는 우리가 잘알고 있는 삼성, SK하이닉스에서 생산하는 DRAM, NAND 등으로 생각하시면 됩니다.
비메모리 반도체에서도 광, 센서 등을 다루는 쪽에 대한 설명은 생략하고 시스템 반도체라고도 하는 ASIC, ASSP, FPGA, SoC에 대해서 다루도록 하겠습니다.

시스템 반도체에서는 ASIC, ASSP, FPGA 3가지로 크게 구성되며 각각에 구성에서 SoC or Non-SoC로 구분되는 것이 정확한 표현인 것 같습니다.

- ASIC ( Application-Specific Integrated Circuit )

특정 용도로 사용되는 주문형 반도체입니다. 한개의 회사에서 제품을 개발해서 특정한 application에 사용되도록 고안된 제품이라고 생각하시면 됩니다. 예) 100G Ethernet Switch Chip, 24x10G Ethernet Chips

 

- ASSP ( Application-Specific Standard Parts )

특정 용도로 표준화한 반도체입니다. ASIC에 비해 표준화된 기술을 기반으로 여러 업체가 사용하여 생산하는 제품으로 생각하면 됩니다.
예) USB Interface Chip, PCIE Controller 등

 

- SoC ( System-on-Chip )

 

Microprocessors (MPUs), Microcontrollers (MCUs), Digital signal processors (DSPs) 등의 on-chip memory 와 함께 연산이나 주변 장치 등을 사용/제어하는 Processor가 포함된 반도체를 SoC라고 생각하시면 됩니다.

따라서, 아래 그림과 같이 ASIC, ASSP에서도 SoC와 Non-SoC가 Processor의 존재 유무에 따라서 나눌 수 있습니다.

출처 : EETimes

- FPGA ( Field-Programmable Gate Arrays  )

 

하드웨어 프로그래밍이 가능한 반도체로 우리가 원하는 디지털 기능의 조합을 구현할 수있는 프로그래머블 패브릭 구성이 가능한 장점을 가지고 있습니다. 간단히 말해서 ASIC, ASSP는 한번 만들어진 기능을 변경할 수 없지만 FPGA는 원하는 기능을 만들고 변경 또한 가능하다고 생각하시면 됩니다. Xilinx와 Intel(ex-Altera)이라는 유명한 회사가 있습니다.
또한, FPGA에서도 ASIC, ASSP와 마찬가지고 Processor를 포함한 SoC 버전이 있습니다.

* 무료 동영상 편집 프로그램인 HitFilm Express를 공부하면서 하나씩 정리하려고 합니다.

우선 FXhome 홈페이지 ( https://fxhome.com/hitfilm-express )에 가면 hitfilm 무료 버전을 facebook 같은 SNS에 홍보를 해주고 Account를 작성하면 무료로 받을 수 있습니다.

Account를 만들때 작성된 E-mail로 download 받을 수 있는 Link를 보내주고 그걸 사용해서 설치하면 됩니다.
최초 한번 download시 작성된 account를 통해서 activatation을 실행하면 무료로 계속 사용할 수 있습습니다.

2019-07-22에 download 받아서 설치한 버전은 아래 HitFilm Express 12 버전입니다.

 

 

설치가 완료된 후 시작을 하면 아래와 같은 화면을 볼 수 있습니다.

 

HitFilm Express 12 시작 화면

첫 페이지에서 부터 설명을 하도록 하겠습니다.

우선 상단 메뉴에는 File, Edit, View, Help 항목이 있습니다.

메뉴 항목들은 Media 패널, View 패널 등과 함께 설명에서 추가적으로 다루도록 하겠습니다.

아래 각 항목들에 어떤 것이 있는지 정도 한번쯤 확인 하시기 바랍니다.


1) File

2) Edit

3) View

4) Help

그리고, 시작화면 상단 좌측에 보시면 New, Open 버튼이 있습니다. 최초 사용을 위해서는 New 버튼으로 Project를 만드셔야 합니다. 아래에 있는 New 버튼을 누리면 New Projet Settings 라면 Popup 창이 나옵니다.

 

새로 열린 New Project Settings에서 보시면 Editor, Rendering Tab이 있습니다.
Template에서 원하시는 setting 항목을 불러오던가 아니면 custom을 video/audio에 대한 모든 항목을 선택해서 만들 수 있습니다. 초기에는 원하는 목적에 맞는 Template을 사용해서 해보시는 것을 추천합니다.

New Project Settings - Editor
New Project Settings - Rendering

New, Open 버튼 아래 보시면 User Guide와 ADD-ON PACKS라는 부분이 있습니다.
User Guide 버튼을 클릭하시면 아래 FXhome에서 제공하는 User Guide 페이지로 브라우저를 통해서 이동합니다.
영문으로만 되어 있어서 우선 프로그램을 사용해본 후 필요하면 한글로 번역 작업을 할 까 생각하고 있습니다.
그리고, 그 아래로 ADD-ON PACKS는 유료 아이템으로 보시면 됩니다. FXhome Store로 연결되며 각각에 대한 Pack들을 유료로 판매하고 있습니다.


** 2편에서는 프로젝트 생성과 생성 후 화면의 각 항목들에 대해서 설명을 하도록 하겠습니다.

  • 곰믹스 GOM Mix ( https://www.gomlab.com/ )

    곰랩에서 제공하는 동영상 편집 프로그램에는 곰믹스와 곰믹스 프로 버전이 있습니다.

    좀더 자세하게 나누면 아래 3가지로 나눌 수 있습니다.


    유료/무료 그리고 곰믹스/곰믹스 프로 차이로 인해서 아래 종류로 2가지 혹스 3가지로 나눌 수 있지만 저는 3가지로 나누어서 설명을 하는 것이 맞을 것으로 생각합니다.


    - 곰믹스 (무료)

    - 곰믹스 프로 (무료)

    - 곰믹스 프로 (유료)


    1) 곰믹스 (무료)

    동영상편집, 사진영상만들기, 셀프식전영상 등 쉽고 빠르게 동영상 편집이 가능하도록 다양한 효과/기능을 제공합니다. 텍스트 효과, 사진 보정 필터, 화면 전환 효과와 이미지/폰트 등 여러가지 기능을 제공하여 퀄리티 높은 영상 편집이 가능합니다.

    2) 곰믹스 프로 (무료)

    곰믹스와 다른점은 
    화면 자르기, 클립 배속 등 고급 기능을 제공하고 템플릿 기능을 지원합니다.

    카메라 효과에서만 보던 필터와 BGM 효과를 지원합니다. 다만 무료버전에서는 Watermark가 표시되고 유료버전에서만 사용할 수 있는 추가기능들이 많이 자물쇠로 잠겨있습니다.

    3) 곰믹스 프로 (유료)

    곰믹스 프로 (유료)에서는 유료버전에서만 사용할 수 있는 템플릿과 필터 등을 지원하고 있습니다.

    또한, 무료버전에서 표시되었던 Watermark가 표시되지 않습니다.

  • 뱁믹스 ( http://www.vapshion.com )

    사용이 간단한 편집 프로그램입니다. 무료이기는 하지만 회원가입을 해야 사용할 수 있습니다.

    기본적으로 영상편집/배경음악/필터효과/자막 기능이 있으며 편하게 사용할 수 있습니다.

    동영상 위에 동영상으로 올리는 기능 같은 몇가지 기능에 대해서 유료화 되어 있습니다.

    사용법이 쉽고 예쁜 자막을 간편하게 넣을 수 있지만 복잡한 작업을 위해서는 맞지 않는 것들이 많이 있습니다.

  • HitFilm Express ( https://fxhome.com/hitfilm-express )

    FXHOME에서 2017년에 출시한 프로그램으로 Express 버전은 무료이고, Pro 버전은 무료로 제공합니다.

    Pro 버전이 고급 기능이 많아서 좋치만 고급 사용자가 아니라면 차이를 느낄 수준으로 불편함이 없다고 합니다.

    어도비 프리미어 프로와 비슷한 인터페이스를 가지고 있어서 프리미어를 사용했던 사람이나 사용하고자 하는 사람이 우선 무료로 사용해보기 좋을 것 같습니다.

    다만, 한글이 지원되지 않아서 영어를 모르는 사람이라면 불편함을 느낄 수 있습니다.

"East-West"와 "North-South" 트래픽이란 말들을 통신용어에서 많이 사용하고 있습니다.
이 용어는 데이터 센터에서 주로 사용되었습니다.

"North-South" 트래픽은 데이터 센터와 클라이언트, 네트워크 상의 데이터 센터 외부와 통신되는 트래픽을 말합니다.
간단히, 내부 트래픽을 제외한 나머지 트래픽으로 생각하면 됩니다.


그리고, "East-West" 트래픽은 데이터 센서 내부에서 발생되는 트래픽으로 서버와 서버간의 트래픽입니다.


요즘은 "East-West" 트래픽이 "North-South" 트래픽 보다 훨씬 더 발생을 하고 있습니다.

Big Data에 대한 처리가 많고 데이터 센터의 수많은 서버들간의 트래픽이 많이 발생하는 추세이므로 훨씬 많다고 생각하면 됩니다.

위 그림에서와 같이 Application들, 즉 서버간에는 수평으로 그리고 외부와 연결되는 네트워크 장비간 연결은 수직으로 통상적으로 표시됩니다. 이와 같은 이유로 "East-West"와 "North-South"구분 되었다고 생각하시면 됩니다.

참고로 전통적으로는 "North-South" 트래픽에 대한 관리 및 구성이 많이 주목 받았다면 최근에는 "East-West" 트래픽이 계속 증가되므로 이곳에 대한 여러가지 기술들이 최근 화두로 발생되고 있습니다.

Xfce는 UNIX 계열 운영체제를 위해서 개발된 가벼운 데스크톱 환경입니다.
시각적인 매력과 사용자에게 친숙하면서 빠른 속도와 작은 시스템 리소스를 사용하는 것으로 목표로 하고 있습니다.
Xfce는 GNOME 2.x과 같이 GTK+ 2 Toolkit을 기반으로 하고 있습니다.

Xfce는 모듈화와 재사용성의 전통 UNIX 철학을 간직하고 있으며 최신 데스크톱 환경의 기대작이 될 수 있는 완벽한 기능성을 갖춘 수많은 구성요소로 이루어져 있습니다. 각 부분으로 패키징했으며, 최적의 개인 작업 환경을 만들려고 사용할 수 있는 각각의 패키지를 고를 수 있습니다. Xfwm 창 관리자를 사용하고 Xfce 설정은 마우스를 사용해 설정 할 수 있습니다. 설정 파일들은 일반 사용자가 알아 보기 어렵게 숨겨져 있습니다.

 

Xfce는 수많은 UNIX 플랫폼에 설치할 수 있으며, X86에서는 Linux, NetBSD, FreeBSD, OpenBSD, Solaris, Cygwin, MacOS X , 그리고 PPC, Sparc, Alpha 등에서 컴파일 가능한 것으로 알려져 있습니다.

올리비어 포던(Olivier Fourdan)이 1996년에 이 프로젝트를 시작하였다.
"Xfce"라는 이름은 원래 XForms Common Environment을 말하던 것이었지만, 더 이상 XFCE라고 쓰지 않고 Xfce라고 사용하고 있습니다.


초기 Xfce는 CDE의 자유 리눅스 복제품이 되도록 XForms로 만든 단순한 프로젝트였다. 간단한 도구 모음인 이 프로그램은 포던이 ibiblio(당시 SunSITE)에 공개했습니다. 포던은 이 프로젝트의 개발을 꾸준히 해 나가다가, 1998년에 Xfce의 창 관리자 Xfwm의 첫 버전을 포함하는 Xfce 2.x를 공개하였습니다. 그는 이 프로젝트를 레드햇 리눅스에 추가할 것을 요청하였지만 프로젝트가 XForms 기반이라는 까닭으로 거절 당하였습니다. 레드햇은 자유, 오픈 소스인 소프트웨어만 받아들였는데, XForms는 클로즈드 소스로 개인 사용자들에게만 자유 라이선스였습니다.


이전에 Xfce가 기반으로 하였던 클로즈드 소스 라이브러리인 XForms는 프로젝트의 발전을 제한하고 있었습니다. 
GTK+ 툴킷이 인기를 끌자, 포던은 이를 알맞은 대체안으로 생각하였습니다. 1999년 3월에 그는 오래된 XFce를 버리고 GTK+를 기반으로 하는 완전하게 새로운 프로젝트를 완성해 나가기 시작하였고 그 결과는 Xfce 3.0로 이어졌으며, GNU GPL 아래에서 라이선스되었습니다. 완전히 오픈 소스 소프트웨어를 기반으로 하는 이 프로젝트는 GTK+ 라이브러리를 사용함으로써 드래그 앤 드롭 지원, 네이티브 언어 지원, 개선된 기능 구성과 같은 많은 이점을 얻을 수 있었습니다. Xfce는 2001년 2월에 3.8.1 버전을 시작으로 소스포지에 업로드되었다.


Xfce는 버전 4.0.0에서 GTK+ 2 라이브러리를 사용하여 갱신되었으며 그 뒤로 다른 수많은 변경 사항들이 적용되었습니다. 4.2.0에서는 Xfwm을 위한 컴포지트 관리자를 포함하였으며, 그림자와 투명도를 자체 내장하였을 뿐 아니라 새로운 기본 SVG 아이콘들도 추가하였습니다. 2007년 1월에 Xfce 4.4.0가 공개되었고 이 버전에서 눈에 띄는 기능으로는 오래된 Xffm을 대체하는 Thunar 파일 관리자입니다. 또한, 데스크톱 아이콘 지원 기능이 추가되었고 Xfwm은 강화된 합성 기술을 사용하였습니다. 또, 패널에 대한 다양한 개선들이 추가되어, 버그 투성이던 플러그인들이 패널에서 충돌되던 것을 막았습니다.

 

 

특징

 

Xfce는 데스크톱 환경에서 기대할 수 있는 많은 핵심 구성요소를 포함하고 있습니다:

 

창 관리자 : 화면의 창의 위치를 관리하고 창 장식을 제공하며 작업공간이나 가상 데스크톱을 관리합니다.

데스크톱 관리자 : 배경 그림을 설정하고 루트 창 메뉴, 데스크톱 아이콘 또는 최소화한 아이콘 그리고 창 목록을 제공합니다.

패널 : 열린 창 들을 전환하고, 프로그램을 실행하며, 작업공간, 그리고 프로그램이나 디렉터리를 탐색하는 메뉴 플러그인을 전환합니다.

세션 관리자 : 로그인과 데스크톱의 전원 관리를 제어하며 다중 로그인 세션을 저장할 수 있게 해줍니다.

프로그램 탐색기 : 분류에 따라 여러분의 시스템에 설치한 프로그램을 보여주어, 여러분이 빠르게 찾고 실행할 수 있습니다.

파일 관리자 : 기본 파일 관리 기능과 일괄 이름 바꾸기 같은 독특한 유틸리티를 제공합니다.

설정 관리자 : 키보드 바로 가기, 모양새, 디스플레이 설정 등과 같은 데스크톱의 다양한 설정을 제어하기 위한 도구입니다.


전체적으로 작은 리소르를 사용하면서 빠른 데스크탑 환경을 필요로 한다면 한번쯤 고려해 볼 매력을 가지고 있습니다.
다만 사용자 수가 GNOME이나 KDE보다 적어 Web상에서 Tip을 찾기가 상대적으로 어려운 편이지만 최근 MX Linux에서도 사용되고 있으므로 점점 더 많은 사용자가 생겨날 것으로 생각됩니다.

OpenCL이라는 용어를 많이 접하게 되어서 궁금함을 해소하고자 정리를 시작하였습니다.
아래 내용들은 설치 및 사용방법에 대한 내용은 아닙니다.
OpenCL이 어떤것인지에 대한 내용을 정리한 것이니 참고하시기 바랍니다.

 

The open standard for parallel programming of heterogeneous systems
( 이 기종 시스템의 병렬 프로그래밍을 위한 개방형 표준 )

 

OpenCL (Open Computing Language)은 개방형으로 서버, 모바일 장치 및 임베디드 플랫폼에서 사용되는 다양한 프로세서의 병렬 프로그래밍을 위해 사용되는 교차 플랫폼을 위한 로열티 없는 표준입니다.

OpenCL은 게임 및 엔터테인먼트 타이틀, 과학 및 의료 소프트웨어, 전문creative도구, 시각 처리 및 신경 네트워크 교육(neural network training) inferencing을 비롯한 다양한  범주에서 광범위하게 사용되는 응용 프로그램의 속도와 응답성을 크게 향상시키고 있습니다.

OpenCL 2.2는 크게 개선된 병렬 프로그래밍 생산성을 위한 core specification안에서 OpenCL C++ 커널 언어를 제공합니다.  

1. OpenCL C++ 커널 언어는 C++ 14 standard의 정적 하위 집합이며 클래스, 템플릿, 람다식, 함수 오버로드 및 일반 및 메타 프로그래밍을 위한 여러 가지 구조를 포함하고 있습니다.

2. OpenCL C++
커널 언어를 완전히 지원하는 새로Khronos SPIR-V 1.2 중급 언어를 사용하고 있습니다.

3. OpenCL 라이브러리 함수는 atomics, iterators, images, samplers, pipes및 내장형 타입의 디바이스큐와 address 공간과 같은 기능이 액세스하는 동안 정의되지 않은 행위를 줄이고 안정성 향상을 제공하므로서 C++ 언어의 장점을 가질 수 있습니다.

4. Pipe storageOpenCL 2.2에서 새로운device-side type으로 컴파일시간에 커넥티비티 크기와 타입을 만들고, 커널간의 효율적인 장치간 통신을 가능하게 함으로써 FPGA 개발에 유용합니다.

5. OpenCL 2.2에는 생성된 코드에 대한 향상된 최적화기능을 포함하고 있습니다.
응용 프로그램은 SPIR-V 컴파일에서 특수화된 상수값을 제공 할 수 있으며 새 쿼리는 프로그램 범위 전역 객체에서 중요하지 않은 생성자 및 소멸자를 검출할 수 있으며 사용자콜백은 프로그램 릴리스시  설정할 수 있습니다

OpenCL 2.2에서 Khronos는 처음으로 OpenCL 2.2 사양의 전체 소스와 GitHub에서 OpenCL 2.2의 적합성 테스트를 발표하여 개발자들이 구현을 테스트하고 버그 수정을 직접 제안하며 자신의 용도에 맞게 사양 및 참조 자료를 재사용 할 수 있도록 하였습니다.
OpenCL 버전 1.2, 2.0 2.1에 대한 적합성 테스트도 GitHub에서 발표되었습니다.

OpenCL Ecosystem (생태계)

 



OpenCL 2.2

 

C ++ 커널 언어 정의
- 단일 소스 C ++ 프로그래밍을 위한 SYCL 2.2와 함께

SPIR-V 1.2 OpenCL C ++ 지원 추가
- Initializer and finalizer function execution modes for constructors and destructors
- Named barriers, subgroup execution, and program scope pipes…


Runs on any OpenCL 2.0-capable hardware

OpenCL 2.0 지원되는 어떤 하드웨어에서도 실행
- 단지 Driver Update만 필요합니다.

Provisional release
- 최종 단계 전에 업계에 피드백을 요청
- SIGGRAPH 또는 SC16에서의 최종화 목표한다 - 피드백에 따라 다름


OpenCL C++

 

OpenCL C ++ 커널 언어는 C ++의 정적 하위 집합입니다.
- 성능을 저하시키지 않으면서 개발자는 low-level 수준의 자세한 코딩을 사용할 수 있습니다.

병렬 프로그래밍을 위해
OpenCL C++에서 제거된 C++ 14 기능

Exceptions, Allocate/Release memory, Virtual functions 그리고 abstract classes Function pointers, Recursion 그리고 goto

Classes, lambda functions, templates, operator overloading etc…

- 빠르고 세련된 코드 공유 - 재사용 가능한 디바이스 라이브러리 및 컨테이너들
- 템플릿을 통해 적응력이 뛰어난 소프트웨어를 위한 메타 프로그래밍이 가능합니다.
- Lambda는 중첩/동적 병렬 처리를 구현하는데 사용되었습니다.

데이터 병렬 프로그래밍에 최적화된
C++ 11 기반 표준 라이브러리
- Atomics, 메타 프로그래밍 및 유형 특성, 수학 함수 ...
- 추가된 새로운 라이브러리 기능 : 작업 항목 및 작업 그룹 기능, 동적 병렬 처리, 이미지 및 파이프 기능 ...

OpenCL 구현회사들

- Xilinx, Inc.
- Vivante Corporation
- Texas Instruments
- Samsung Electronics
- STMicroelectronics International NV
- QUALCOMM
- NVIDIA Corporation
- MediaTek Inc
- Marvell
- Intel
- Imagination Technologies
- IBM Corporation
- Creative Labs
- Arm Limited
- Apple, Inc.
- Altera Corporation
- AMD


여기까지가 OpenCL 커뮤니티에서 참고해서 작성된 OpenCL에 대한 설명입니다.

아마도 간단하게 이해를 원하시는 분들이 있을거라고 생각합니다.
그런 분들은 P
arallel Computing, Parallel programming에 대해서 확인을 해보시기 바랍니다.

Serial Computing vs Parallel ComputingSerial programming vs Parallel programming에 대한 차이를 보면 OpenCL이 왜 생겨났는지에 대한 궁금증이 해결 되셨을 것입니다.

많은 Data를 고속으로 처리해야되는 요구가 시장에서 발생했고 그것을 지원하고 프로세서들 개발되었습니다.  CPU, GPU, FPGA 등에서 시장 요구 사항을 충족 시키고자 제조사별로 다양한 방법으로 Programming Language/Library가 지원이 되었을 것입니다. 하지만, 시장은 좀더 쉽고 편한 방법에 대한 욕구가 발생했고 그것을 다시 충족시키기 위해서 OpenCL 같은 범용 표준이 탄생된 것으로 생각합니다. 

+ Recent posts