document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-218594\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"cm\">/*<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"cm\"> * =====================================================================================<\/span><\/div><div class=\"line\" id=\"LC3\"><span class=\"cm\"> *       Filename:  hello.c<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"cm\"> *         Author:  Raimon Grau Cuscó (rg), raimonster@gmail.com<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"cm\"> * =====================================================================================<\/span><\/div><div class=\"line\" id=\"LC6\"><span class=\"cm\"> */<\/span><\/div><div class=\"line\" id=\"LC7\">&nbsp;<\/div><div class=\"line\" id=\"LC8\"><span class=\"cp\">#include &lt;omp.h&gt;<\/span><\/div><div class=\"line\" id=\"LC9\"><span class=\"cp\">#include &lt;stdlib.h&gt;<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;<\/div><div class=\"line\" id=\"LC11\"><span class=\"kt\">int<\/span> <span class=\"nf\">main<\/span> <span class=\"p\">()<\/span><\/div><div class=\"line\" id=\"LC12\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">start<\/span><span class=\"p\">,<\/span><span class=\"n\">end<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span><span class=\"p\">,<\/span> <span class=\"n\">sh<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">srand<\/span><span class=\"p\">(<\/span><span class=\"mi\">8<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">//srand(time(0));<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">sh<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">start<\/span> <span class=\"o\">=<\/span> <span class=\"n\">omp_get_wtime<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;Total number of procs: %d<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">omp_get_num_procs<\/span><span class=\"p\">());<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;Total number of max available threads: %d<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">omp_get_max_threads<\/span><span class=\"p\">());<\/span><\/div><div class=\"line\" id=\"LC20\"><span class=\"cp\">#pragma omp parallel shared(sh)<\/span><\/div><div class=\"line\" id=\"LC21\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;Hello world! %d<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">omp_get_thread_num<\/span><span class=\"p\">());<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">sh<\/span><span class=\"o\">+=<\/span><span class=\"n\">rand<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;%f<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">sh<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC25\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">end<\/span> <span class=\"o\">=<\/span> <span class=\"n\">omp_get_wtime<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;Elapsed time: %f<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">end<\/span> <span class=\"o\">-<\/span> <span class=\"n\">start<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;acc rand: %f<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span><span class=\"n\">sh<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;<\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC31\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;<\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/218594/c143588bdd247c7da4f6d8b14f3267116fd5574a/hello.c\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/218594#file_hello.c\" style=\"float:right;margin-right:10px;color:#666\">hello.c<\/a>\n          <a href=\"http://gist.github.com/218594\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"cp\">#include &lt;stdio.h&gt;<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"cp\">#include &lt;stdlib.h&gt;<\/span><\/div><div class=\"line\" id=\"LC3\"><span class=\"cp\">#include &lt;unistd.h&gt;<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"cp\">#include &lt;math.h&gt;<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"cp\">#include &lt;omp.h&gt;<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;<\/div><div class=\"line\" id=\"LC7\"><span class=\"cp\">#define MATSIZE 700<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;<\/div><div class=\"line\" id=\"LC9\"><span class=\"cp\">#define DEBUG<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;<\/div><div class=\"line\" id=\"LC11\"><span class=\"kt\">void<\/span> <span class=\"nf\">init_mat<\/span> <span class=\"p\">(<\/span><span class=\"kt\">double<\/span> <span class=\"n\">M<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">],<\/span> <span class=\"kt\">double<\/span> <span class=\"n\">v<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC12\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">int<\/span> <span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">j<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;<\/div><div class=\"line\" id=\"LC15\"><span class=\"cp\">   #pragma omp for collapse(2)<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">j<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">M<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">][<\/span><span class=\"n\">j<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sin<\/span><span class=\"p\">((<\/span><span class=\"kt\">double<\/span><span class=\"p\">)<\/span> <span class=\"n\">i<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC21\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;<\/div><div class=\"line\" id=\"LC23\"><span class=\"kt\">void<\/span> <span class=\"nf\">matmul<\/span> <span class=\"p\">(<\/span><span class=\"kt\">double<\/span> <span class=\"n\">C<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">],<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">A<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">],<\/span> <span class=\"kt\">double<\/span> <span class=\"n\">B<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">])<\/span><\/div><div class=\"line\" id=\"LC25\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">int<\/span> <span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">j<\/span><span class=\"p\">,<\/span> <span class=\"n\">k<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">aux<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;<\/div><div class=\"line\" id=\"LC29\"><span class=\"cp\">   #pragma omp for private(j,k,aux)<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">j<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">aux<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC33\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">k<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">k<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">k<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC34\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">aux<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">A<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">][<\/span><span class=\"n\">k<\/span><span class=\"p\">]<\/span> <span class=\"o\">*<\/span><span class=\"n\">B<\/span><span class=\"p\">[<\/span><span class=\"n\">k<\/span><span class=\"p\">][<\/span><span class=\"n\">j<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC35\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC36\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">C<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">][<\/span><span class=\"n\">j<\/span><span class=\"p\">]<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">aux<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC37\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC38\">&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC39\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC40\">&nbsp;<\/div><div class=\"line\" id=\"LC41\"><span class=\"kt\">int<\/span> <span class=\"nf\">comp<\/span> <span class=\"p\">(<\/span><span class=\"kt\">double<\/span> <span class=\"n\">A<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">],<\/span> <span class=\"kt\">double<\/span> <span class=\"n\">B<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">])<\/span><\/div><div class=\"line\" id=\"LC42\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC43\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">int<\/span> <span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">j<\/span><span class=\"p\">,<\/span> <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC44\">&nbsp;<\/div><div class=\"line\" id=\"LC45\">&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC46\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"n\">j<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC47\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">abs<\/span> <span class=\"p\">(<\/span><span class=\"n\">A<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">][<\/span><span class=\"n\">j<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span> <span class=\"n\">B<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">][<\/span><span class=\"n\">j<\/span><span class=\"p\">])<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mf\">1e-10<\/span><span class=\"p\">)<\/span> <span class=\"n\">count<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC48\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC49\">&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC50\">&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"n\">count<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC51\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC52\">&nbsp;<\/div><div class=\"line\" id=\"LC53\"><span class=\"kt\">int<\/span> <span class=\"nf\">main<\/span> <span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">argc<\/span><span class=\"p\">,<\/span> <span class=\"kt\">char<\/span> <span class=\"o\">*<\/span> <span class=\"n\">argv<\/span><span class=\"p\">[])<\/span><\/div><div class=\"line\" id=\"LC54\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC55\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">start<\/span><span class=\"p\">,<\/span> <span class=\"n\">end<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC56\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">A<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC57\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">B<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC58\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">C<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC59\">&nbsp;<\/div><div class=\"line\" id=\"LC60\">&nbsp;&nbsp;&nbsp;<span class=\"n\">init_mat<\/span> <span class=\"p\">(<\/span><span class=\"n\">A<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.1<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC61\">&nbsp;&nbsp;&nbsp;<span class=\"n\">init_mat<\/span> <span class=\"p\">(<\/span><span class=\"n\">B<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.1<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC62\">&nbsp;&nbsp;&nbsp;<span class=\"n\">init_mat<\/span> <span class=\"p\">(<\/span><span class=\"n\">C<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.0<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC63\">&nbsp;<\/div><div class=\"line\" id=\"LC64\">&nbsp;&nbsp;&nbsp;<span class=\"n\">start<\/span> <span class=\"o\">=<\/span> <span class=\"n\">omp_get_wtime<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC65\">&nbsp;&nbsp;&nbsp;<span class=\"n\">matmul<\/span> <span class=\"p\">(<\/span><span class=\"n\">C<\/span><span class=\"p\">,<\/span> <span class=\"n\">A<\/span><span class=\"p\">,<\/span> <span class=\"n\">B<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC66\">&nbsp;&nbsp;&nbsp;<span class=\"n\">end<\/span> <span class=\"o\">=<\/span> <span class=\"n\">omp_get_wtime<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC67\">&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span> <span class=\"p\">(<\/span><span class=\"s\">&quot;matmul1 time: %f seconds<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">end<\/span><span class=\"o\">-<\/span><span class=\"n\">start<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC68\">&nbsp;<\/div><div class=\"line\" id=\"LC69\"><span class=\"cp\">#ifdef DEBUG<\/span><\/div><div class=\"line\" id=\"LC70\">&nbsp;&nbsp;&nbsp;<span class=\"kt\">double<\/span> <span class=\"n\">D<\/span><span class=\"p\">[<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">][<\/span><span class=\"n\">MATSIZE<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC71\">&nbsp;&nbsp;&nbsp;<span class=\"n\">init_mat<\/span> <span class=\"p\">(<\/span><span class=\"n\">D<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.0<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC72\">&nbsp;&nbsp;&nbsp;<span class=\"n\">omp_set_num_threads<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC73\">&nbsp;&nbsp;&nbsp;<span class=\"n\">matmul<\/span> <span class=\"p\">(<\/span><span class=\"n\">D<\/span><span class=\"p\">,<\/span><span class=\"n\">A<\/span><span class=\"p\">,<\/span><span class=\"n\">B<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC74\">&nbsp;&nbsp;&nbsp;<span class=\"n\">printf<\/span> <span class=\"p\">(<\/span><span class=\"s\">&quot;Comparing...<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC75\">&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">comp<\/span> <span class=\"p\">(<\/span><span class=\"n\">C<\/span><span class=\"p\">,<\/span> <span class=\"n\">D<\/span><span class=\"p\">))<\/span> <span class=\"n\">printf<\/span> <span class=\"p\">(<\/span><span class=\"s\">&quot;matmul unsuccessful<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC76\">&nbsp;&nbsp;&nbsp;<span class=\"k\">else<\/span>  <span class=\"n\">printf<\/span> <span class=\"p\">(<\/span><span class=\"s\">&quot;matmul ok<\/span><span class=\"se\">\\n<\/span><span class=\"s\">&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC77\"><span class=\"cp\">#endif<\/span><\/div><div class=\"line\" id=\"LC78\">&nbsp;<\/div><div class=\"line\" id=\"LC79\"><span class=\"p\">}<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/218594/16b5ffe4dde8fc5e6ff4f2499c7f19d9ba024db1/matmul.c\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/218594#file_matmul.c\" style=\"float:right;margin-right:10px;color:#666\">matmul.c<\/a>\n          <a href=\"http://gist.github.com/218594\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
