<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic missing fftw functions (fftwnd_f77_mpi_ etc.) in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818778#M4530</link>
    <description>Herbert,&lt;DIV&gt;&lt;DIV&gt;This issue has been submitted to our internal development tracking database for further investigation, we will inform you once a new update becomes available.&lt;BR /&gt;Here is a bug tracking number for your reference: DPD200272909&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 01 Feb 2012 11:53:05 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2012-02-01T11:53:05Z</dc:date>
    <item>
      <title>missing fftw functions (fftwnd_f77_mpi_ etc.)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818775#M4527</link>
      <description>This question was asked last summer by somebody else on a different Intel forum. The poster was referred to the MKL forum, but I can't find an answer here.&lt;BR /&gt;&lt;BR /&gt;Compilation of a program (Wien2k in my case) with composer_xe_2011_sp1.6.233 (including MPI) and the included fftw2 wrappers fails with&lt;BR /&gt;&lt;BR /&gt;fftw_para.o: In function `exec_fftw_para_':&lt;BR /&gt;fftw_para.F:(.text+0x77): undefined reference to `fftwnd_f77_mpi_'&lt;BR /&gt;fftw_para.F:(.text+0xb2): undefined reference to `fftwnd_f77_mpi_'&lt;BR /&gt;fftw_para.o: In function `init_fftw_para_':&lt;BR /&gt;fftw_para.F:(.text+0x101): undefined reference to `fftw3d_f77_mpi_create_plan_'&lt;BR /&gt;fftw_para.F:(.text+0x131): undefined reference to `fftw3d_f77_mpi_create_plan_'&lt;BR /&gt;fftw_para.F:(.text+0x159): undefined reference to `fftwnd_f77_mpi_local_sizes_'&lt;BR /&gt;&lt;BR /&gt;The fftw libraries I compiled in the wrappers directory are libfftw2xf_intel.a and libfftw2x_cdft_DOUBLE.a.&lt;BR /&gt;&lt;BR /&gt;Any suggestions?&lt;BR /&gt;&lt;BR /&gt;Thanks in advance,&lt;BR /&gt;&lt;BR /&gt; Herbert&lt;BR /&gt;</description>
      <pubDate>Tue, 31 Jan 2012 11:19:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818775#M4527</guid>
      <dc:creator>Fruchtl__Herbert</dc:creator>
      <dc:date>2012-01-31T11:19:53Z</dc:date>
    </item>
    <item>
      <title>missing fftw functions (fftwnd_f77_mpi_ etc.)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818776#M4528</link>
      <description>&lt;P&gt;Hi Herbert,&lt;/P&gt;&lt;P&gt;I noticed these symbols are not there. I will check with engineer owner and provide some update. &lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Chao&lt;/P&gt;</description>
      <pubDate>Wed, 01 Feb 2012 06:41:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818776#M4528</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2012-02-01T06:41:57Z</dc:date>
    </item>
    <item>
      <title>missing fftw functions (fftwnd_f77_mpi_ etc.)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818777#M4529</link>
      <description>Hi Herbert,&lt;BR /&gt;&lt;BR /&gt;Indeed, the trailing underscores are missing in the F77 interface wrappers provided with this version of MKL.&lt;BR /&gt;&lt;BR /&gt;In order to work around this problem you may consider changing the F77 function names in the wrappers adding the underscore (e.g. fftw_f77_mpi -&amp;gt; fftw_f77_mpi_) manually or via applying the patch below:&lt;BR /&gt;&lt;BR /&gt;===========&lt;BR /&gt;--- wrappers/1d_create_plan.c&lt;BR /&gt;+++ wrappers/1d_create_plan.c&lt;BR /&gt;@@ -64,7 +64,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftw_f77_mpi_create_plan(fftw_mpi_plan *plan, MPI_Comm *comm, int *n, int *idir, int *flags) {&lt;BR /&gt;+void fftw_f77_mpi_create_plan_(fftw_mpi_plan *plan, MPI_Comm *comm, int *n, int *idir, int *flags) {&lt;BR /&gt;&lt;BR /&gt; *plan = fftw_mpi_create_plan(MPI_Comm_f2c(comm), *n, (*idir)&amp;lt;0 ? FFTW_FORWARD : FFTW_BACKWARD, *flags);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/1d_destroy_plan.c&lt;BR /&gt;+++ wrappers/1d_destroy_plan.c&lt;BR /&gt;@@ -42,6 +42,6 @@ void fftw_mpi_destroy_plan(fftw_mpi_plan&lt;BR /&gt; free(p);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftw_f77_mpi_destroy_plan(fftw_mpi_plan *p) {&lt;BR /&gt;+void fftw_f77_mpi_destroy_plan_(fftw_mpi_plan *p) {&lt;BR /&gt; fftw_mpi_destroy_plan(*p);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/1d_fftw.c&lt;BR /&gt;+++ wrappers/1d_fftw.c&lt;BR /&gt;@@ -52,6 +52,6 @@ error:&lt;BR /&gt; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftw_f77_mpi(fftw_mpi_plan *p, int *n, void *local, void *work, int *use_work) {&lt;BR /&gt;+void fftw_f77_mpi_(fftw_mpi_plan *p, int *n, void *local, void *work, int *use_work) {&lt;BR /&gt; fftw_mpi(*p, *n, local, (*use_work)?work:NULL);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/1d_local_sizes.c&lt;BR /&gt;+++ wrappers/1d_local_sizes.c&lt;BR /&gt;@@ -53,6 +53,6 @@ error:&lt;BR /&gt; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftw_f77_mpi_local_sizes(fftw_mpi_plan *p,MKL_INT *n,MKL_INT *start,MKL_INT *n_out,MKL_INT *start_out, MKL_INT *size) {&lt;BR /&gt;+void fftw_f77_mpi_local_sizes_(fftw_mpi_plan *p,MKL_INT *n,MKL_INT *start,MKL_INT *n_out,MKL_INT *start_out, MKL_INT *size) {&lt;BR /&gt; fftw_mpi_local_sizes(*p, n, start, n_out, start_out, size);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/nd_create_plan.c&lt;BR /&gt;+++ wrappers/nd_create_plan.c&lt;BR /&gt;@@ -68,7 +68,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftw2d_f77_mpi_create_plan(fftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, fftw_direction *dir, int *flags)&lt;BR /&gt;+void fftw2d_f77_mpi_create_plan_(fftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, fftw_direction *dir, int *flags)&lt;BR /&gt;{&lt;BR /&gt; *plan = fftw2d_mpi_create_plan(MKL_Comm_c2f(MPI_COMM_WORLD), *ny, *nx, *dir, *flags);&lt;BR /&gt;}&lt;BR /&gt;@@ -107,7 +107,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftw3d_f77_mpi_create_plan(fftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, int *nz, fftw_direction *dir, int *flags)&lt;BR /&gt;+void fftw3d_f77_mpi_create_plan_(fftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, int *nz, fftw_direction *dir, int *flags)&lt;BR /&gt;{&lt;BR /&gt; *plan = fftw3d_mpi_create_plan(MKL_Comm_c2f(MPI_COMM_WORLD), *nz, *ny, *nx, *dir, *flags);&lt;BR /&gt;}&lt;BR /&gt;@@ -151,7 +151,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftwnd_f77_mpi_create_plan(fftwnd_mpi_plan *plan, MPI_Comm *comm, int *dim, int *nn, fftw_direction *dir, int *flags)&lt;BR /&gt;+void fftwnd_f77_mpi_create_plan_(fftwnd_mpi_plan *plan, MPI_Comm *comm, int *dim, int *nn, fftw_direction *dir, int *flags)&lt;BR /&gt;{&lt;BR /&gt; REVERSE_INT_ARRAY(nn,*dim);&lt;BR /&gt; *plan = fftwnd_mpi_create_plan(MKL_Comm_c2f(MPI_COMM_WORLD), *dim, nn, *dir, *flags);&lt;BR /&gt;--- wrappers/nd_destroy_plan.c&lt;BR /&gt;+++ wrappers/nd_destroy_plan.c&lt;BR /&gt;@@ -41,7 +41,7 @@ void fftwnd_mpi_destroy_plan(fftwnd_mpi_&lt;BR /&gt; free(p);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftwnd_f77_mpi_destroy_plan(fftwnd_mpi_plan* p)&lt;BR /&gt;+void fftwnd_f77_mpi_destroy_plan_(fftwnd_mpi_plan* p)&lt;BR /&gt;{&lt;BR /&gt; fftwnd_mpi_destroy_plan(*p);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/nd_fftw.c&lt;BR /&gt;+++ wrappers/nd_fftw.c&lt;BR /&gt;@@ -56,7 +56,7 @@ error2:&lt;BR /&gt; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftwnd_f77_mpi(fftwnd_mpi_plan *p, int *n, void *local, void *work, int *use_work, fftwnd_mpi_output_order *output_order)&lt;BR /&gt;+void fftwnd_f77_mpi_(fftwnd_mpi_plan *p, int *n, void *local, void *work, int *use_work, fftwnd_mpi_output_order *output_order)&lt;BR /&gt;{&lt;BR /&gt; fftwnd_mpi(*p, *n, local, (*use_work)?work:NULL, *output_order);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/nd_local_sizes.c&lt;BR /&gt;+++ wrappers/nd_local_sizes.c&lt;BR /&gt;@@ -54,6 +54,6 @@ error:&lt;BR /&gt; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void fftwnd_f77_mpi_local_sizes(fftwnd_mpi_plan *p,MKL_INT *n,MKL_INT *start,MKL_INT *n_out,MKL_INT *start_out, MKL_INT *size) {&lt;BR /&gt;+void fftwnd_f77_mpi_local_sizes_(fftwnd_mpi_plan *p,MKL_INT *n,MKL_INT *start,MKL_INT *n_out,MKL_INT *start_out, MKL_INT *size) {&lt;BR /&gt; fftwnd_mpi_local_sizes(*p, n, start, n_out, start_out, size);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/rnd_create_plan.c&lt;BR /&gt;+++ wrappers/rnd_create_plan.c&lt;BR /&gt;@@ -80,7 +80,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void rfftw2d_f77_mpi_create_plan(rfftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, fftw_direction *dir, int *flags)&lt;BR /&gt;+void rfftw2d_f77_mpi_create_plan_(rfftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, fftw_direction *dir, int *flags)&lt;BR /&gt;{&lt;BR /&gt; *plan = rfftw2d_mpi_create_plan(MPI_Comm_f2c(comm), *ny, *nx, *dir, *flags);&lt;BR /&gt;}&lt;BR /&gt;@@ -130,7 +130,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void rfftw3d_f77_mpi_create_plan(rfftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, int *nz, fftw_direction *dir, int *flags)&lt;BR /&gt;+void rfftw3d_f77_mpi_create_plan_(rfftwnd_mpi_plan *plan, MPI_Comm *comm, int *nx, int *ny, int *nz, fftw_direction *dir, int *flags)&lt;BR /&gt;{&lt;BR /&gt; *plan = rfftw3d_mpi_create_plan(MPI_Comm_f2c(comm), *nz, *ny, *nx, *dir, *flags);&lt;BR /&gt;}&lt;BR /&gt;@@ -194,7 +194,7 @@ error2:&lt;BR /&gt; return NULL;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void rfftwnd_f77_mpi_create_plan(rfftwnd_mpi_plan *plan, MPI_Comm *comm, int *dim, int *nn, fftw_direction *dir, int *flags)&lt;BR /&gt;+void rfftwnd_f77_mpi_create_plan_(rfftwnd_mpi_plan *plan, MPI_Comm *comm, int *dim, int *nn, fftw_direction *dir, int *flags)&lt;BR /&gt;{&lt;BR /&gt; REVERSE_INT_ARRAY(nn,*dim);&lt;BR /&gt; *plan = rfftwnd_mpi_create_plan(MPI_Comm_f2c(comm), *dim, nn, *dir, *flags);&lt;BR /&gt;--- wrappers/rnd_destroy_plan.c&lt;BR /&gt;+++ wrappers/rnd_destroy_plan.c&lt;BR /&gt;@@ -42,7 +42,7 @@ void rfftwnd_mpi_destroy_plan(rfftwnd_mp&lt;BR /&gt; free(p);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void rfftwnd_f77_mpi_destroy_plan(rfftwnd_mpi_plan* p)&lt;BR /&gt;+void rfftwnd_f77_mpi_destroy_plan_(rfftwnd_mpi_plan* p)&lt;BR /&gt;{&lt;BR /&gt; rfftwnd_mpi_destroy_plan(*p);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/rnd_fftw.c&lt;BR /&gt;+++ wrappers/rnd_fftw.c&lt;BR /&gt;@@ -71,7 +71,7 @@ error2:&lt;BR /&gt; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void rfftwnd_f77_mpi(rfftwnd_mpi_plan *p, int *n, void *local, void *work, int *use_work, fftwnd_mpi_output_order *output_order)&lt;BR /&gt;+void rfftwnd_f77_mpi_(rfftwnd_mpi_plan *p, int *n, void *local, void *work, int *use_work, fftwnd_mpi_output_order *output_order)&lt;BR /&gt;{&lt;BR /&gt; rfftwnd_mpi(*p, *n, local, (*use_work)?work:NULL, *output_order);&lt;BR /&gt;}&lt;BR /&gt;--- wrappers/rnd_local_sizes.c&lt;BR /&gt;+++ wrappers/rnd_local_sizes.c&lt;BR /&gt;@@ -53,7 +53,7 @@ error:&lt;BR /&gt; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;-void rfftwnd_f77_mpi_local_sizes(rfftwnd_mpi_plan *p,MKL_INT *n,MKL_INT *start,MKL_INT *n_out,MKL_INT *start_out, MKL_INT *size)&lt;BR /&gt;+void rfftwnd_f77_mpi_local_sizes_(rfftwnd_mpi_plan *p,MKL_INT *n,MKL_INT *start,MKL_INT *n_out,MKL_INT *start_out, MKL_INT *size)&lt;BR /&gt;{&lt;BR /&gt; rfftwnd_mpi_local_sizes(*p, n, start, n_out, start_out, size);&lt;BR /&gt;}&lt;BR /&gt;=================&lt;BR /&gt;&lt;BR /&gt;Other solutions might be to compile your code with "-assume nounderscore" (which may be a bad idea in case of Wien2k), or to use objcopy to rename the symbols inquestions to add underscore.&lt;BR /&gt;&lt;BR /&gt;We may consider changing this in one of our future releases.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Vladimir&lt;BR /&gt;</description>
      <pubDate>Wed, 01 Feb 2012 09:33:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818777#M4529</guid>
      <dc:creator>Vladimir_Petrov__Int</dc:creator>
      <dc:date>2012-02-01T09:33:56Z</dc:date>
    </item>
    <item>
      <title>missing fftw functions (fftwnd_f77_mpi_ etc.)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818778#M4530</link>
      <description>Herbert,&lt;DIV&gt;&lt;DIV&gt;This issue has been submitted to our internal development tracking database for further investigation, we will inform you once a new update becomes available.&lt;BR /&gt;Here is a bug tracking number for your reference: DPD200272909&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 01 Feb 2012 11:53:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818778#M4530</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2012-02-01T11:53:05Z</dc:date>
    </item>
    <item>
      <title>missing fftw functions (fftwnd_f77_mpi_ etc.)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818779#M4531</link>
      <description>Could I have some more detailed instructions how patching works? When I copy that into a file "patch" and execute&lt;BR /&gt;&lt;BR /&gt;patch &lt;PATCH&gt;&lt;BR /&gt;&lt;BR /&gt;in the directory composer_xe_2011_sp1.6.233/mkl/interfaces/fftw2x_cdft (because that's from where the filenames in the file seem to be declared), it doesn't find the files to patch:&lt;BR /&gt;=====&lt;BR /&gt;[root@wardlaw10 fftw2x_cdft]# patch --dry-run &lt;PATCH&gt;&lt;BR /&gt;can't find file to patch at input line 3&lt;BR /&gt;Perhaps you should have used the -p or --strip option?&lt;BR /&gt;The text leading up to this was:&lt;BR /&gt;--------------------------&lt;BR /&gt;|--- wrappers/1d_create_plan.c&lt;BR /&gt;|+++ wrappers/1d_create_plan.c&lt;BR /&gt;--------------------------&lt;BR /&gt;File to patch: &lt;BR /&gt;=====&lt;BR /&gt;What am I doing wrong?&lt;BR /&gt;&lt;BR /&gt;Thanks in advance,&lt;BR /&gt;&lt;BR /&gt; Herbert&lt;BR /&gt;&lt;BR /&gt;&lt;/PATCH&gt;&lt;/PATCH&gt;</description>
      <pubDate>Thu, 02 Feb 2012 18:12:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818779#M4531</guid>
      <dc:creator>Fruchtl__Herbert</dc:creator>
      <dc:date>2012-02-02T18:12:31Z</dc:date>
    </item>
    <item>
      <title>missing fftw functions (fftwnd_f77_mpi_ etc.)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818780#M4532</link>
      <description>Hi Herbert,&lt;BR /&gt;&lt;BR /&gt;It worked for me with&lt;BR /&gt;patch -p0 &lt;PATCH&gt;&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Vladimir&lt;/PATCH&gt;</description>
      <pubDate>Fri, 03 Feb 2012 06:34:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/missing-fftw-functions-fftwnd-f77-mpi-etc/m-p/818780#M4532</guid>
      <dc:creator>Vladimir_Petrov__Int</dc:creator>
      <dc:date>2012-02-03T06:34:09Z</dc:date>
    </item>
  </channel>
</rss>

