얼룩말 물고기의 패턴 형성을 시뮬레이션 해보십시오.

소개



목적


  • 반응 확산 시스템 이해

  • 지난번 확립된 GPU 계산 기법을 바로 적용해 보자

  • 이 논문의 재현을 시도한다.
    달리 명시하지 않는 경우에, 인용은 전부 이 논문에서.

    Pattern regulation in the stripe of zebrafish suggests an underlying dynamic and autonomous mechanism.
    Yamaguchi M, Yoshimoto E, Kondo S.
    Proc Natl Acad Sci U S A. 2007 Mar 20;104(12):4790-3. Epub 2007 Mar 12.​

    참고 사이트



    반응 확산 시스템에 대하여
    Mechanism of pigment pattern formation
    반응 확산파란?

    반응 확산 시스템의 실장 예
    튜링 파 (반응 확산 파)를 이해하고 싶습니다.
    2차원 Turing 패턴 생성

    반응계의 대표예, 반응 확산계의 도입으로서
    FitzHugh-남운모델에서 놀아보기

    논문 설명 · 보충





    위의 그림은 얼룩말 피시에 레이저를 대고 염료를 소실시킨 부분에 주입한 색소를 바탕으로 패턴이 재생하는 모습(상단)과 그 컴퓨터 시뮬레이션(하단)이다.



    시뮬레이션은 위의 공식에 따라 수행됩니다.
    덧붙여서 $\Delta u,\Delta v$ 는 라플라시안으로, 시간의 증분 $\Delta t$ 와 혼동하지 않게.

    논문중에 셀 사이즈 $h$ 가 쓰여져 있지 않아서 걸렸지만, $h = 0.05$ 로 잘 갔다. $ h $가 이것보다 크면 줄무늬가 두 개로 나뉘어집니다.
    $ h $는 확산과 관련이 있으며 $ D_u/h ^ 2 = 4, D_v/h ^ 2 = 80 $의 값이 중요합니다.
    $1/h^2$ 는 라플라시안(=2층 미분)의 조작으로 나온다.

    시간차는 $\Delta t = 0.001$ 로 했다.
    $4\Delta t\, D_v/h^2 = 0.32 < 0.5$ 에서 확산 차분법의 안정 조건은 가득 채워지고 있다.
    한편, $\Delta t\, D_u/h^2 = 0.004$ 로, 10진법 7자리 정밀도의 Float32 하지만 자릿수 떨어짐까지는 걱정하지 않아도 좋을 것 같다. $u\sim 1,\, h^2\Delta u\sim 0.1$ 때 $u+\Delta t\, D_u\Delta u$ 의 정밀도가 2에서 3자리가 되어 버리지만 어쩔 수 없을 것이다.

    결과



    Julia Notebook
    htps : // st. 기주 b. 코 m / ㅃ리 my / 4d39643 아 b c519에 21c77d261c0b6079

    초기 상태


    경과(GIF 애니메이션)


    또한 두 배 정도 시간이 지난 상태


    논문(256x128) 보다 큰 영역(256x256)으로 시뮬레이션했지만, 아마 잘 되고 있다고 생각한다.

    GIF 애니메이션 계산 및 이미지 출력 85초
    GPU 사용률 30% 정도

    그래도 CPU(실장으로서는 상당히 느리다고 생각하지만)와 비교하면 50배 이상 빠르다.
    고맙게 생각하면 CPU의 (벡터) 구현에서 거의 변경없이 GPU로 이동할 수 있습니다.
    CPU에서 성능을 걱정하는 것보다 아무것도 생각하지 않고 GPU에 올리는 것이 좋다.

    라고 생각하고 있었지만, 실은 정밀도의 검토는 결과를 정리한 뒤, 기사를 쓰면서 가고 있어, 의외로 시비아인 밸런스 위에서 성립되고 있었다는 것을 깨달아 진창하고 있다.

    좋은 웹페이지 즐겨찾기