계산속도에 관한 질문입니다. (MATLAB --> C, 미분방정식 풀이)

chlee849의 이미지

안녕하세요. 수치해석을 하기위해 프로그래밍을 하려고 하고 있는 공대대학원생입니다.

MATLAB으로 짜여져 있는 미분방정식을 푸는 프로그램을 C로 옮기고자 하는데요.
(c언어는 학부때 수업이후로 배운적이 없어서 아주 기본적인것만 그것도 부족하게 알고있는 상태입니다.)

미분방정식은 간단히 표현하자면 시간에 대하여 1계, 1-d공간에 대하여 2계인 미분방정식(dy/dt=d^2y/dx^2)인데,

1D 직선상에서의 해을 구하기 위해 vertorize되어 MATLAB 프로그래밍 되어있는 상태입니다.

제가 알기로는 c언어는 행렬 연산에 최적화되어 있는 언어가 아니라서

for 구문을 통하여 x=0 부터 x=L까지 순차적으로 구하는 방식을 취해야할것 같은데

1. (C언어가 MATLAB에 비해서 일반적인 경우에 빠르다지만) 이런 형태로 구현하더라도 계산속도가 MATLAB에 비해서 과연 빠른가요?

2. 1번이 틀리다면, 데이터 병렬성을 가진 1-D array 연산을 빠르게 C 에서 구현하려면 어떻게 해야할까요? (Eigen같은 오픈 소스 라이브러리를 이용하는건 어떤가요?)

조언 혹은 고견을 구하고 싶습니다.

File attachments: 
첨부파일 크기
Image icon de.JPG10.97 KB
shint의 이미지

Eigen benchmark로 네이버와 구글에서 찾으니. 이미 테스트한 결과가 있네요.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

라스코니의 이미지

MATLAB 같은 경우 수많은 엔지니어가 수없는 최적화를 거치면서 현재까지 왔을 것이고,,, 단순히 C인 또는 C가 아닌 플랫폼으로 비교할 문제는 아닌 듯 싶습니다.
MATLAB의 경우 coder 또는 embedded coder 로 C 코드로 변환할 수 있는 것으로 알고 있습니다.

MATLAB 보다는 C로 구현된 플랫폼에서 해당 기능을 쓰기 원하시면 위의 방법을 쓸 수도 있고 수많은 오픈 소스 라이브러리를 쓰는 것도 방법이겠네요.
공부삼아 구현해 볼수도 있겠으나 금방 배보다 배꼽이 끄구나 라는 생각이 들수도..............

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.