2015년 4월 19일 일요일

Open Source CAE Toolchain 7 - Web Services


FEM, CFD 같은 Equation Solve 작업은 누구나 알다시피,
사실 단순무식한 반복계산을 거대하게 수행하는 것이다.

따라서 작업시간을 줄이려면 계산을 엄청 빨리하는 수 밖에 없다.
또 Mesh를 조밀하게 하면 할 수록 정확도가 올라가지만
계산량도 세제곱에 비례해서 커지는데다가,
Transient 조건하에서는 Time Step 만큼 비례해서 더 계산량이 많아진다.

개인용 PC의 성능이 엄청 좋아졌고,
CUDA 같은 기술도 있다고 하지만
아무래도 수십~수천개의 CPU를 병렬로 돌릴 수 있는 환경과는 거리가 멀다.

프로페셔널한 목적으로 해석을 하려면
아무래도 개인용PC 정도로는 생산성이 너무 떨어진다.

그래서 우리나라의
국가슈퍼컴퓨터 연구소(KISTI http://www.nisn.re.kr/ ) 같은 곳에서는
오래전부터 KREONET 같은걸 운영하면서
상당히 저렴하게 슈퍼컴퓨터를 사용할 수 있게 해 주고 있었다.

지금도 아마 국책연구소나 학교 소속이라면 매우 저렴하게 슈퍼컴퓨터에 접속해서
ANSYS, ABAQUS 같은 고가의 CAE 소프트웨어를 마음껏 돌릴 수 있을 것이다.

(학생이라면 연회비 10만원 정도였던가...)

하지만 아무래도 상업적인 용도로 무제한적으로 사용하기에는
어려운 점이 많다.

또 슈퍼컴퓨터에 직접 연결해서 작업하려면 
기본적으로 CUI 환경에서 셋팅해줘야 하는 작업들이 주류일텐데
역시 진입장벽으로 작용한다.

이걸 해소하기 위해 교육용으로 하고 해서
겸사겸사의 목적으로
EDISON Project 라는게 진행중인 모양이다.

http://www.edison.re.kr/

CFD나 나노스케일 물리현상 시뮬레이션 등의 교육용으로
국가 슈퍼컴퓨터 자원을 이용할 수 있도록 하고,
이 과제에 참가한 학교들의 실험실에서 만든 각종 솔버들을
올려서 사용할 수 있도록 한 것이다.
그리고 이걸 웹 기반 서비스로 만든 모양이다.

그런데 뭔가 좀 이상한게
DLL 파일 같은걸 돌려야 된다는 둥
그러면 당신의 PC에서 안 받아줄 테니
확장자를 DLL01 따위로 바꿔서 다운로드 하게 해 줄테니
받아다가 확장자를 DLL로 바꿔서 사용하라는 등의
금융권에서나 일어날 법한 이상한 구조가 좀 있긴 하다.

솔버 역시 Elmer 처럼 General한 것이 아니고
대부분 2D에 정해진 프레임웍만 가진 특수한 문제의 해를 보여주는 식이다.
아무래도 단기간에 General한 솔버를 만드는데는 무리가 있다고 생각된다.

Elmer의 경우에는, 개발을 10년동안 진행한 후 오픈소스로 공개했고
이후에 계속 업데이트하고 있다.
유럽쪽 슈퍼컴퓨터들중 상당수는 Elmer를 셋팅해놓고 돌리는 것 같다.

반면 우리나라의 Edison 프로젝트는
빅데이타네 몽고DB네 Xen이네 등등 최신기술을 줄줄 열거해 놓고 나서
서비스는 실행파일 받아서 돌려라는 식으로 구성되어 있다.
그리고 General Solver 개발은 처음부터 언감생심 고려되고 있지도 않다.

국가연구소 설립한다고 해 놓고
연구소 건물 짓는데 예산을 다 써버리는
건설 마피아가 하는 짓과 비슷하다는 느낌이 들었다.

.........


한편,
2000년대 이후로 급속도로 발달한 웹기술이 주목할 만 하다.
AJAX 기술은 사용자의 UI를
웹 프론트엔드로 거의 완전히 대체 가능하도록 만들었다.

3D 작업은 웹으로 힘들거라는 생각을 이제는 비웃기 시작한다.
실제로 상업적인 서비스가 막 나온다.

GrabCAD 같은 회사는 심플한 PDM 서비스를 운영한다.
서비스를 사용해 봤는데,
제대로 된 PDM이라고 하기에는 좀 거리가 있지만
3D 데이타를 올려서 어디서나 Viewing 하는데는 아주 훌륭했다.

Web 기반 PDM, PLM 서비스는 이제 많이 나와있다.
ARAS 같은것을 필두로, 지맨스 것도 웹 기반으로 전환했고
카티아도 활발하다.
(PTC만 잠자고 있나)

오픈소스 OpenPLM도 있다.
이건 AJAX가 아니고 파이썬 쟝고 기반이지만
아주 훌륭하다.
FreeCAD와 붙여서 연계하는 기능도 최근에 추가된 듯 하다.


이정도 상황이 되었다면,
자 그럼 당연히 CAE도 웹서비스로 할 생각을 하게 될 것이다.
실제로 그것을 완성한 업체를 발견했다.

독일 뮌헨의 스타트업 회사인 듯 한데
요즘 엄청 잘 나가나보다.

SIMSCALE

지금 바로 가서 아카데미로 회원가입하면 모든 기능을 사용 가능하다.
학생, 교사 아니라고 아카데미 회원으로 안 받아주고 
그런 쫌팽이 짓도 안하더라...


기본적으로 무제한의 메모리와 32개의 CPU를 준다.
1000 CPU Time의 자원과 12개월간의 사용권도 준다.

백엔드 쪽은,
Netgen, SnappyHexMesh, EnGrid, (메쉬작업)
Code-Aster, Calculix, (구조해석)
OpenFoam, 스텐포드 SU2, (유체해석)
을 가지고 구성해 놨다.
전부 오픈소스가지고 솔버를 사용한 것이다.

프론트엔드 쪽은,
JavaScript와 그에 기반한 Angular.js 같은걸로 꾸며놨다.
3D는 당연히 X3D로 되어있다.
반응성 엄청 좋다.

포스트스크립트는 VTK 및 ParaviewWeb가지고 해 놨다.

간단히 말해서, 이미 존재하는 것들을 모아다가 서비스를 만들어 놓은 것이다.
최신 웹기술을 가지고 가능한 서비스다.

일단 나도 회원가입해서
매쉬작업 옵션을 Fine으로 해서 빡쎄게 돌려보고 있는 중이다.







이걸로 복잡하거나 규모가 좀 큰 해석을 돌려보고
쓸만하다 싶으면
현재 사용중인 유로 CAE 소프트웨어 라이센스를 끊어버려도 될지 
여부를 심각하게 고려해 볼 지도 모른다.

서비스 안정성에 큰 문제가 없다면
비용적으로 기존 제품의 라이센스 비용보다
훨씬 싸게 먹힌다.

단일 아이디로 여러명이 함께 사용하는 꼼수도 가능하므로
단일 PC에서만 사용이 허락되는 경직된 라이센스 정책에서도 해방되고
사무실 아니라 아무데서나 WebGL이 돌아가는 PC에서 사용 가능하게 된다.

......




댓글 없음:

댓글 쓰기