게임엔진이 아니고 계산과학 분야 얘기임
게임엔진은 안해봐서 모름
C / C++ / Fortran / Python / Julia
C와 Fortran은 서로간의 interoperability가 매우 좋음
특히 2018년 이후의 Fortran은 C의 내장함수를 오버헤드없이 불러쓰는 상황
둘의 퍼포먼스는 좋으나 입출력 시스템이 미개함
Fortran
언어의 문법 자체가 matrix 연산에 최적화되어 있음
element operator나 matrix element packing 등이 기본적으로 지원됨
대부분의 수치해석 라이브러리가 이 언어로 만들어져서 활용하기 편함
그 외의 부분을 시도할 시 암에 걸림
C++
기본 지원 유틸이 풍부함
extern "C"와 함께라면 C++역시 Fortran과의 interoperability가 좋음
STL이 제공하는 컨테이너 데이터를 직접 주고받을수는 없으므로
raw pointer를 꺼내서 던져줘야 하는 정도의 불편함을 감내하면 유용하게 활용가능
STL의 속도가 느리다고는 하지만 프로그램의 부하 대부분을 solver가 차지하므로 큰 문제가 되진 않음
복잡한 입력데이터를 파싱하고 메모리를 잡는다던가 하는데 주로 사용
matrix를 빌드업하는데까진 잘 활용하지만 solver까지 작성하는 경우는 별로 없음
Python
앞에서 만들어진 프로그램을 사용할 때 pre-, post- processing 할 때 사용됨
numpy, pypy 가 있긴한데 거의 프로젝트 초기에만 테스팅용으로 사용함
Julia
Python의 좆같은 부분과, 병신같은 성능문제가 사라진 버전의 언어
프로젝트 초기에 가능성을 빠르게 확인하는데 좋음
C나 Fortran call이 자유로우며 python 패키지 대부분을 거의 그대로 가져다 쓸 수 있음
그리고 Rust
개인적으로 이 분야에 Rust가 도입될 수 있을까 해서 시도해 봤는데 결론부터 말하면 실패함
빌드시스템과 라이브러리가 잘되어있다곤 하는데 이쪽 분야에는 턱없이 부족한게 문제
MPI 구현체를 선택할 수 없어서 기존 프로그램들과의 연계에 적절치 못함
crate뒤지면 라이브러리들이 나오기는 하는데 그냥 래핑정도만 되어있음
수치해석 시 병렬화 지원에 괴리가 있음 parallelism과 concurrency를 구분 못하는 느낌
아무튼 맨날 만지던것만 만지니까 재미없어지는게 사실
먼가 새로운게 있었으면 좋겠다
님 닉 왜 이상하게보임
고였네
해당 댓글은 삭제되었습니다.
맞다 CUDA얘길 안했네 요즘 쓰는곳 좀 보이던데 내가 한번도 안써봐서 까먹고 있었음
수치해석에 쓰기에는 아직 라이브러리가 부족한가보군.. 뭐 어쩔수 없는거 아니겟음.. 신생언어인데..
줄리아 써볼려고 해도 참고할 자료가 넘 없어ㅇ.ㅇ - dc App
C/C++/Julia 조와요옹