Skip to content
Snippets Groups Projects
Commit 3857abf50619 authored by Ashwin Vishnu's avatar Ashwin Vishnu
Browse files

Make fig_build_use using draw.io JupyterLab extension

parent bcc8f738e640
No related branches found
No related tags found
No related merge requests found
......@@ -20,6 +20,8 @@
*/*.pstats
*/.ipynb_checkpoints
auto/*
**/_minted-*
......
<mxGraphModel dx="616" dy="502" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="583" background="#ffffff"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="2" target="13" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="2" target="17" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="2" value="base_fft.h&lt;font face=&quot;Courier New&quot;&gt;&lt;br&gt;&lt;b&gt;BaseFFT&lt;/b&gt;&lt;/font&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="173" y="20" width="100" height="40" as="geometry"/></mxCell><mxCell id="39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.25;entryY=0;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="13" target="15" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="110" y="150"/><mxPoint x="198" y="150"/></Array></mxGeometry></mxCell><mxCell id="13" value="base_fft2d.h&lt;br&gt;&lt;b&gt;BaseFFT2D&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="60" y="100" width="100" height="40" as="geometry"/></mxCell><mxCell id="41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="15" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="200" y="250" as="targetPoint"/></mxGeometry></mxCell><mxCell id="15" value="base_fft2dmpi.h&lt;br&gt;&lt;b&gt;BaseFFT2DMPI&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="173" y="170" width="100" height="40" as="geometry"/></mxCell><mxCell id="43" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="21" target="42" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="160" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.75;entryY=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="21" target="45" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="60" y="271"/><mxPoint x="60" y="360"/><mxPoint x="93" y="360"/></Array></mxGeometry></mxCell><mxCell id="186" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="21" target="105"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="320" y="271"/><mxPoint x="320" y="343"/></Array></mxGeometry></mxCell><mxCell id="21" value="fft2dmpi_with_fftwmpi2d.h&lt;br&gt;&lt;b&gt;FFT2DMPIWithFFTWMPI2D&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="80" y="251" width="200" height="40" as="geometry"/></mxCell><mxCell id="204" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" edge="1" parent="1" source="42" target="203"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="42" value="fft2dmpi_with_fftwmpi2d.cpp&lt;br&gt;&lt;b&gt;FFT2DMPIWithFFTWMPI2D&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="80" y="305" width="200" height="40" as="geometry"/></mxCell><mxCell id="152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="45" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="160" y="482.2413793103449" as="targetPoint"/></mxGeometry></mxCell><mxCell id="45" value="Write user C++ code" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="3" y="462" width="120" height="40" as="geometry"/></mxCell><mxCell id="33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="17" target="15" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="17" value="base_fftmpi.h&lt;br&gt;&lt;b&gt;BaseFFTMPI&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="173" y="100" width="100" height="40" as="geometry"/></mxCell><mxCell id="23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="19" target="21" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="150" y="220" as="targetPoint"/><Array as="points"><mxPoint x="90" y="230"/><mxPoint x="165" y="230"/></Array></mxGeometry></mxCell><mxCell id="19" value="fftw3-mpi.h" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="40" y="170" width="100" height="40" as="geometry"/></mxCell><mxCell id="209" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" edge="1" parent="1" source="58" target="183"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="58" value="Execute" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Courier New;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="197" y="521" width="145" height="35" as="geometry"/></mxCell><mxCell id="85" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="62" target="84" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="62" value="base.pyx" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="580" y="20" width="100" height="40" as="geometry"/></mxCell><mxCell id="95" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.762;entryY=0.08;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="84" target="91" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="630" y="170"/><mxPoint x="591" y="170"/></Array></mxGeometry></mxCell><mxCell id="84" value="template2d_mako.pyx" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;gradientColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="560" y="120" width="140" height="40" as="geometry"/></mxCell><mxCell id="163" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.297;entryY=0.042;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" target="45" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="39.23529411764707" y="437" as="sourcePoint"/></mxGeometry></mxCell><mxCell id="68" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="67" target="62" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="67" value="mpi4py" style="shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;shadow=0;" parent="1" vertex="1"><mxGeometry x="468" y="10" width="65" height="37" as="geometry"/></mxCell><mxCell id="72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.75;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="71" target="62" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="71" value="numpy" style="shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;shadow=0;" parent="1" vertex="1"><mxGeometry x="468" y="63" width="65" height="37" as="geometry"/></mxCell><mxCell id="81" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="79" target="80" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="79" value="cpu.pxd" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="710" y="20" width="100" height="40" as="geometry"/></mxCell><mxCell id="82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=1;entryY=0.5;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="80" target="62" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="700" y="102"/><mxPoint x="700" y="40"/></Array></mxGeometry></mxCell><mxCell id="80" value="util_pyfftw.pyx" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="710" y="82" width="100" height="40" as="geometry"/></mxCell><mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.28;entryY=-0.06;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="90" target="91" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="470" y="170"/><mxPoint x="500" y="170"/></Array></mxGeometry></mxCell><mxCell id="90" value="template2d_mako.pxd" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="400" y="120" width="140" height="40" as="geometry"/></mxCell><mxCell id="124" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="91" target="100" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="125" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="91" target="99" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="91" value="Generate Cython code&lt;br&gt;&lt;b&gt;&lt;font face=&quot;Courier New&quot;&gt;mako&lt;/font&gt;&lt;/b&gt;" style="shape=mxgraph.flowchart.predefined_process;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;shadow=0;" parent="1" vertex="1"><mxGeometry x="447" y="190" width="189" height="34" as="geometry"/></mxCell><mxCell id="202" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=1;entryY=0.5;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" edge="1" parent="1" source="99" target="105"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="788" y="287"/><mxPoint x="788" y="343"/></Array></mxGeometry></mxCell><mxCell id="99" value="fft2dmpi_with_fftw1d.pyx&lt;br&gt;&lt;b&gt;FFT2DMPIWithFFTWMPI2D&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;gradientColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="561" y="258" width="169" height="58" as="geometry"/></mxCell><mxCell id="196" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" edge="1" parent="1" source="100" target="99"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="100" value="fft2dmpi_with_fftw1d.pxd&lt;br&gt;&lt;b&gt;FFT2DMPIWithFFTWMPI2D&lt;/b&gt;" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="352" y="257" width="171" height="60" as="geometry"/></mxCell><mxCell id="193" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="105" target="135"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="105" value="Generate C++ code&lt;br&gt;&lt;b&gt;purepymake.py&lt;/b&gt; (&lt;b&gt;cython)&lt;/b&gt;" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" parent="1" vertex="1"><mxGeometry x="533" y="328" width="235" height="30" as="geometry"/></mxCell><mxCell id="194" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="135"><mxGeometry relative="1" as="geometry"><mxPoint x="650" y="450" as="targetPoint"/></mxGeometry></mxCell><mxCell id="135" value="Compile objects and build python extensions&lt;br&gt;&lt;b&gt;purepymake.py (cython&lt;/b&gt; / &lt;b&gt;mpicxx&lt;/b&gt;)" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" parent="1" vertex="1"><mxGeometry x="510" y="383" width="280" height="47" as="geometry"/></mxCell><mxCell id="189" value="&lt;font face=&quot;Helvetica&quot;&gt;Install fluidfft&lt;/font&gt;&lt;br&gt;&lt;b&gt;setup.py&lt;/b&gt;" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" vertex="1" parent="1"><mxGeometry x="510" y="452" width="270" height="28" as="geometry"/></mxCell><mxCell id="177" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="168" target="170"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="168" value="Write user Python code" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" vertex="1" parent="1"><mxGeometry x="492" y="510" width="144" height="40" as="geometry"/></mxCell><mxCell id="181" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="170" target="173"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="720" y="560"/></Array></mxGeometry></mxCell><mxCell id="170" value="Execute the python script" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Courier New;strokeWidth=1;" vertex="1" parent="1"><mxGeometry x="670" y="505" width="100" height="50" as="geometry"/></mxCell><mxCell id="173" value="End" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" vertex="1" parent="1"><mxGeometry x="418" y="540" width="37" height="39" as="geometry"/></mxCell><mxCell id="195" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" edge="1" parent="1" source="178" target="168"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="438" y="530"/></Array></mxGeometry></mxCell><mxCell id="178" value="Start" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" vertex="1" parent="1"><mxGeometry x="419" y="461" width="37" height="39" as="geometry"/></mxCell><mxCell id="182" value="Start" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" vertex="1" parent="1"><mxGeometry x="21" y="400" width="37" height="39" as="geometry"/></mxCell><mxCell id="183" value="End" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" vertex="1" parent="1"><mxGeometry x="22" y="519" width="37" height="39" as="geometry"/></mxCell><mxCell id="206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" edge="1" parent="1" source="203"><mxGeometry relative="1" as="geometry"><mxPoint x="269" y="519.9999999999999" as="targetPoint"/></mxGeometry></mxCell><mxCell id="203" value="Compile objects and build executable &lt;b&gt;(cython&lt;/b&gt; / &lt;b&gt;mpicxx&lt;/b&gt;)" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" vertex="1" parent="1"><mxGeometry x="158" y="455" width="222" height="47" as="geometry"/></mxCell></root></mxGraphModel>
\ No newline at end of file
This diff is collapsed.
......@@ -64,10 +64,6 @@
FluidFFT: a library which provides C++ and Python classes
useful to perform fast Fourier transform (FFT).
Distributed (MPI)
CUDA / OpenCL?
\cite{fluiddyn}
\section*{Keywords}
......@@ -87,7 +83,7 @@
functionality should be included in this section. }
Fast Fourier transforms (FFT) are useful for many applications. There are many
good libraries to perform FFT, in particular the standard FFTW. A new
good libraries to perform FFT, in particular the standard FFTW. A new
challenge is to perform efficiently FFT on clusters with the memory distributed
over a large number of cores. A problem is that for one-dimensional FFT, all
the data has to be located in the memory of the process that perform the FFT,
......@@ -105,8 +101,8 @@
since there is no common API, it is not simple to write applications that are
able to use these libraries and to compare their performances.
There are already tools to perform FFT with Python (scipy.fftpack,
pyfftw). However, they suffer from drawbacks:
There are already tools to perform FFT with Python (\pack{scipy.fftpack},
\pack{pyfftw}). However, they suffer from drawbacks:
\begin{itemize}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment