파라뷰

**파라뷰**(ParaView)는 상호작용적인 과학적 시각화를 위한 오픈 소스 다중 플랫폼 응용 소프트웨어이다. 데이터 세트의 원격 시각화를 용이하게 하기 위한 클라이언트-서버 아키텍처를 갖추고 있으며, 대규모 데이터 세트에 대해 상호작용 가능한 프레임 속도를 유지하기 위해 레벨 오브 디테일(LOD) 모델을 생성한다. 이 애플리케이션은 시각화 툴킷(VTK) 라이브러리를 기반으로 구축되었다. 파라뷰는 분산 메모리 또는 공유 메모리 아키텍처 멀티컴퓨터 및 클러스터에서 데이터 병렬성을 구현하도록 설계된 애플리케이션이다. 또한 단일 컴퓨터 애플리케이션으로도 실행할 수 있다.

## 요약
**파라뷰**는 오픈 소스이며 다중 플랫폼 데이터 분석 및 시각화 애플리케이션이다. 파라뷰는 과학 데이터 세트를 분석하고 시각화하기 위해 다양한 커뮤니티에서 널리 알려져 있고 사용된다. 질적 및 양적 기술을 사용하여 데이터를 분석하기 위한 시각화를 구축하는 데 사용할 수 있다. 데이터 탐색은 3D에서 상호작용적으로 수행하거나 파라뷰의 배치 처리 기능을 사용하여 프로그래밍 방식으로 수행할 수 있다.

파라뷰는 분산 메모리 컴퓨팅 리소스를 사용하여 매우 거대한 데이터 세트를 분석하기 위해 개발되었다. 소규모 데이터를 위해 노트북에서 실행할 수 있을 뿐만 아니라, 테라스케일급 데이터 세트를 분석하기 위해 슈퍼컴퓨터에서 실행할 수도 있다.

파라뷰는 턴키(turn-key) 애플리케이션일 뿐만 아니라 애플리케이션 프레임워크이기도 하다. 파라뷰 코드 베이스는 모든 구성 요소를 재사용하여 수직적 애플리케이션을 빠르게 개발할 수 있도록 설계되었다. 이러한 유연성 덕분에 파라뷰 개발자는 특정 문제 영역에 특화된 기능을 가진 애플리케이션을 신속하게 개발할 수 있다.

파라뷰는 분산 및 공유 메모리 병렬 시스템과 단일 프로세서 시스템에서 실행된다. 윈도우, macOS, 리눅스, IBM 블루 진, Cray XT3, 그리고 다양한 유닉스 워크스테이션, 클러스터 및 슈퍼컴퓨터에서 성공적으로 테스트되었다. 내부적으로 파라뷰는 데이터 처리 및 렌더링 엔진으로 VTK를 사용하며, Qt를 사용하여 작성된 사용자 인터페이스를 갖추고 있다.

파라뷰 팀의 목표는 다음과 같다:
* 오픈 소스, 다중 플랫폼 시각화 애플리케이션 개발.
* 대규모 데이터 세트 처리를 위한 분산 컴퓨팅 모델 지원.
* 개방적이고 유연하며 직관적인 사용자 인터페이스 생성.
* 개방형 표준에 기반한 확장 가능한 아키텍처 개발.

## 역사
파라뷰 프로젝트는 2000년에 미국 에너지부 ASCI Views 프로그램의 지원을 받아 Kitware, Inc.와 로스앨러모스 국립연구소 간의 협력 작업으로 시작되었다. 첫 번째 공개 버전은 2002년 10월에 발표되었다.

파라뷰와는 별개로, Kitware는 2001년 12월에 웹 기반 시각화 시스템을 개발했다. 이 프로젝트는 미국 육군 연구소의 SBIR 1단계 및 2단계 자금 지원을 받았으며, 결국 파라뷰 엔터프라이즈 에디션(PVEE)이 되었다. PVEE는 파라뷰의 클라이언트/서버 아키텍처 개발에 크게 기여했다.

2005년 9월, Kitware, 샌디아 국립 연구소 및 CSimSoft(현 Coreform LLC)는 파라뷰 3.0 개발을 시작했다. 파라뷰 3.0은 2007년 5월에 출시되었다. 2013년 6월에는 VTK 6.0을 기반으로 한 파라뷰 4.0이 출시되었다. 버전 5.0은 2016년 1월에 출시되었으며, 이 버전에는 새로운 렌더링 백엔드가 포함되었다.

## 기능

### 시각화 능력
* 구조화된 격자(균일 직선, 비균일 직선 및 곡선 격자), 비구조화된 격자, 다각형, 이미지, 멀티 블록 및 AMR 데이터 유형을 처리한다.
* 모든 처리 작업(필터)은 데이터 세트를 생성한다. 이를 통해 사용자는 모든 작업의 결과를 추가로 처리하거나 결과를 데이터 파일로 저장할 수 있다. 예를 들어, 사용자는 절단면을 추출하고, 마스킹을 통해 이 표면의 점 개수를 줄이고, 결과에 글리프(예: 벡터 화살표)를 적용할 수 있다.
* 데이터 세트의 점에 글리프(화살표, 원뿔, 선, 구 및 다양한 2D 글리프)를 적용하여 벡터 필드를 검사할 수 있다. 글리프는 스칼라, 벡터 성분 또는 벡터 크기에 따라 크기를 조정할 수 있으며 벡터 필드를 사용하여 방향을 정할 수 있다.
* 스칼라 또는 벡터 성분을 사용하여 모든 데이터 유형에서 등치선(Contours) 및 등치면(Isosurfaces)을 추출할 수 있다. 결과는 다른 변수로 색상화하거나 추가 처리할 수 있다. 가능한 경우, 구조화된 데이터의 등치선/등치면은 효율적인 데이터 레이아웃을 활용하는 빠르고 효율적인 알고리즘으로 추출된다.
* 임의의 평면으로 절단 또는 클리핑(모든 데이터 유형), 셀을 제외하기 위한 임계값 기준 지정(모든 데이터 유형) 및 VOI(관심 영역 - 구조화된 데이터 유형만 해당) 지정을 통해 데이터 세트의 하위 영역을 추출할 수 있다.
* 고정 단계 또는 적응형 적분기를 사용하여 유선(Streamlines)을 생성할 수 있다. 결과는 점, 선, 튜브, 리본 등으로 표시될 수 있으며 다수의 필터로 처리될 수 있다. 시간적 데이터 세트에서 입자의 경로를 추출할 수 있다.
* 데이터 세트의 점은 스칼라(사용자 정의 변위 벡터 사용 시) 또는 벡터를 사용하여 변형(Warp)될 수 있다(비선형 직선 격자에는 사용할 수 없음).
* 배열 계산기(Array calculator)를 사용하여 기존의 점 또는 셀 필드 배열로 새로운 변수를 계산할 수 있다. 다수의 스칼라 및 벡터 연산이 지원된다.
* VTK, NumPy, SciPy 및 기타 파이썬 모듈과 함께 파이썬 프로그래밍 가능 필터(Python Programmable filter)를 사용하여 고급 데이터 처리를 수행할 수 있다.
* 점 또는 선을 따라 데이터를 프로브(Probe)할 수 있다. 결과는 그래픽 또는 텍스트로 표시되며 추가 분석을 위해 내보낼 수 있다. 시간 경과에 따른 데이터 추출도 가능하다(최소값, 최대값 및 표준 편차와 같은 통계 정보 포함).
* 강력한 선택 메커니즘과 스프레드시트 뷰를 사용하여 데이터를 정량적으로 검사할 수 있다. 선택 메커니즘을 통해 사용자는 점을 집거나 사각형 영역을 선택하는 상호작용적 선택 또는 정량적 선택 메커니즘을 사용하여 데이터 세트의 중요한 하위 집합에 집중할 수 있다.
* 스프레드시트 뷰를 통해 사용자는 전체 데이터 세트 또는 선택된 하위 집합을 원시 숫자로 검사할 수 있다.
* 파라뷰는 기본적으로 많은 다른 데이터 소스와 필터를 제공한다. 모든 VTK 소스 또는 필터는 간단한 XML 설명을 제공함으로써 추가할 수 있다.

### 입력/출력 및 파일 형식
* 다음을 포함한 다양한 파일 형식을 지원한다: VTK (신규 및 구형 버전, 병렬, ASCII 및 바이너리 포함 모든 유형 읽기 및 쓰기 가능).
* EnSight 6 및 EnSight Gold (병렬, ASCII 및 바이너리 포함 모든 유형 지원; 다중 파트 지원 - 각 파트는 별도로 로드되어 개별적으로 처리될 수 있음) (읽기 전용).
* CGNS (다중 블록, 비정상 솔루션 및 메쉬 변형 지원, HDF5 저수준 형식 기반) (읽기 전용).
* STL 및 BYU를 포함한 다양한 다각형 파일 형식 (기본적으로 읽기 전용이며, XML 설명을 작성하여 다른 VTK 라이터를 추가할 수 있음).
* 다른 많은 파일 형식이 지원된다.
* 모든 VTK 소스 또는 필터는 간단한 XML 설명을 제공함으로써 추가할 수 있다(VTK는 많은 리더를 제공함).
* 파라뷰는 오픈 소스이므로 사용자가 직접 리더와 라이터를 제공할 수 있다.

### 사용자 상호작용
* Qt 애플리케이션 프레임워크를 기반으로 한 직관적이고 유연한 인터페이스.
* 3D 위젯(조작기)을 사용하여 3D 뷰와 직접 상호작용함으로써 많은 필터의 매개변수를 변경할 수 있다. 예를 들어, 사용자는 제어 점을 클릭하고 선을 새 위치로 드래그하여 유선 필터의 시드 라인을 조작할 수 있다.
* 컴팩트한 사용자 인터페이스 디자인. 기본적으로 모든 중요한 도구는 메인 창에 위치한다. 이는 복잡한 데스크톱에서 찾기 어려운 수많은 창의 필요성을 제거한다. 메인 창에서 인스펙터를 분리하는 것도 가능하다.
* 레벨 오브 디테일(LOD) 모델을 사용하여 대규모 데이터로 작업할 때도 상호작용 가능한 프레임 속도를 유지한다. 사용자는 상호작용 중에 모델의 축소 버전이 표시되는 임계값(점의 개수)을 결정한다(모델의 크기도 조정 가능). 상호작용이 끝나면 전체 모델이 렌더링된다.

### 대규모 데이터 및 분산 컴퓨팅
* MPI를 사용하여 분산 및 공유 메모리 시스템에서 병렬로 실행된다. 여기에는 워크스테이션 클러스터, 시각화 시스템, 대형 서버, 슈퍼컴퓨터 등이 포함된다.
* 사용자 인터페이스는 클라이언트/서버 모드를 사용하여 별도의 컴퓨터에서 실행된다.
* 파라뷰는 데이터를 여러 조각으로 나누어 서로 다른 프로세스에서 처리하는 데이터 병렬 모델을 사용한다. 대부분의 시각화 알고리즘은 병렬로 실행될 때 변경 없이 작동한다. 파라뷰는 조각에 관계없이 일관된 결과를 생성하기 위해 사용되는 고스트 레벨(Ghost levels)도 지원한다. 고스트 레벨은 프로세스 간에 공유되는 점/셀이며 이웃 정보가 필요한 알고리즘에서 사용된다.
* 분산 렌더링(결과가 각 노드에서 렌더링되고 나중에 깊이 버퍼를 사용하여 합성됨), 로컬 렌더링(결과 다각형이 한 노드에 수집되어 로컬에서 렌더링됨) 및 이 둘의 조합(예: LOD 모델은 로컬에서 렌더링되는 반면 전체 모델은 분산 방식으로 렌더링됨)을 모두 지원한다. 이는 소규모 데이터로 작업할 때 성능을 희생하지 않으면서 대규모 데이터에 대해 확장 가능한 렌더링을 제공한다.
* 분산 렌더링 및 타일형 디스플레이는 샌디아의 Ice-T 라이브러리를 사용하여 수행된다.

### 스크립팅 및 확장성
* 파라뷰는 단순하지만 강력한 파이썬 언어를 사용하여 완전히 스크립트화할 수 있다. 서버 매니저라고 불리는 파라뷰의 데이터 엔진은 파이썬 인터페이스를 통해 완전히 접근 가능하다. 파이썬을 통해 엔진에 가해진 모든 변경 사항은 사용자 인터페이스에 자동으로 반영된다.
* 파라뷰는 파이썬 인터페이스를 사용하여 배치 애플리케이션으로 실행될 수 있다. IBM 블루 진 및 Cray Xt3를 포함한 슈퍼컴퓨터에서 배치 모드를 사용하여 성공적으로 실행되었다.
* 파이썬 프로그래밍 가능 필터를 사용하여 파이썬에서 분산 데이터 처리를 수행할 수 있다. 이 필터는 NumPy 및 SciPy와 원활하게 작동한다.
* 인터페이스의 XML 설명을 작성하거나 C++ 클래스를 작성하여 추가 모듈을 추가할 수 있다. XML 인터페이스를 통해 사용자/개발자는 특별한 코드를 작성하거나 재컴파일하지 않고도 자신의 VTK 필터를 파라뷰에 추가할 수 있다.

## 사용 중인 파라뷰
* 2005년 샌디아 국립 연구소, 엔비디아 및 키트웨어는 파라뷰에서 수행된 확장 가능한 시각화 및 렌더링 작업에 대해 여러 차례 보도 자료를 발표했다. 해당 발표에서는 파라뷰를 사용하여 초당 80억 개 이상의 다각형을 렌더링하는 속도를 달성하여 확장 가능한 성능의 획기적인 발전을 알렸다.
* 파라뷰는 모델링 소프트웨어인 OpenFOAM의 시각화 플랫폼으로 사용된다.
* 노스캐롤라이나 대학교 채플힐의 '과학 시각화' 과정은 파라뷰를 다룬다.
* 오크리지 국립연구소의 국가 컴퓨팅 과학 센터는 대규모 데이터 세트를 시각화하는 데 파라뷰를 사용한다.
* SimScale은 통합 포스트 프로세싱 환경의 대안으로 파라뷰를 사용하며, 파라뷰를 이용한 포스트 프로세싱에 대한 여러 튜토리얼과 웨비나를 제공하고 있다.
* FEATool Multiphysics 시뮬레이션 툴박스는 파라뷰 글랜스(ParaView Glance) 상호작용형 웹 플롯으로 원클릭 내보내기 기능을 제공한다.
* PeriLab Peridynamics 시뮬레이션은 대규모 모델 시각화를 위해 Exodus 인터페이스를 사용한다.


Global_Seismic_Wave_Propagation_Simulation.gif|전지구 지진파 전파 시뮬레이션
Vortexje-results-in-paraview.png|와류 시각화
Mappemonde_paraview.jpg|파라뷰: 세계 지도 보기
Point_load_halfspace.png|반무한 공간 위에 놓인 단위 점 하중으로 인한 x 방향 변위
Cantilever_beam_Sxx.png|외팔보의 축 응력


## 같이 보기
* CMake
* 과학적 시각화
* VisIt
* VTK

## 각주




## 외부 링크
* 다양한 분야에서의 파라뷰 사용
* 파라뷰 갤러리
* 파라뷰 출판물
* 파라뷰 시각화 Flickr 페이지
* Vimeo의 Kitware 동영상

분류:BSD 라이선스 소프트웨어