<p dir="auto">As we talk about parallel computing in various contexts, it might be handy to keep in mind<br>
all the high level moving parts.   Here are some that come to mind, just to get the ball rolling.</p>
<p dir="auto">Hardware</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox">   Shared Memory Machines (Threads: See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="9422371" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/1790" data-hovercard-type="issue" data-hovercard-url="/JuliaLang/julia/issues/1790/hovercard" href="https://github.com/JuliaLang/julia/issues/1790">#1790</a>,  <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="9453947" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/1802" data-hovercard-type="issue" data-hovercard-url="/JuliaLang/julia/issues/1802/hovercard" href="https://github.com/JuliaLang/julia/issues/1802">#1802</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox">   Distributed Memory (especially networks of shared memory) (spawns, MPI?, migrating threads?)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox">  GPUs? (we do/don't believe these are here to stay)</li>
</ul>
<p dir="auto">Tools</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox">  Nice Graphical Performance Tools and Instrumentation (My first wish: just<br>
have Green (working) / Red (idle) on every processor easily every time I do parallel julia)</li>
</ul>
<p dir="auto">Programming Models</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Persistent Data as in Global Array Syntax  Darrays (Star-P and others)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> CILK/Spawns</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Map/reduce etc.</li>
</ul>
<p dir="auto">Communication Layers</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> ZMQ, MPI, sockets</li>
</ul>
<p dir="auto">Schedulers</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox">  ??</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Does one master know all state?</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Can our serial model be in conflict with various parallel models?</li>
</ul>
<p dir="auto">Libraries</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Scalapack, parallel FFTW?, sparse matrices, PETSc , (star-p like to compare<br>
with more pure julia  methods?)</li>
</ul>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mlubin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mlubin">@mlubin</a> This is what I propose for lufact!</p>
<ol dir="auto">
<li>Create a new type - SparseMatrixCSCZeroIndexing</li>
<li>Avoid the copy in lufact!, and simply use S all along</li>
<li>Make S of type SparseMatrixCSCZeroIndexing, so that it doesn't mess up the printing of the Factorization object</li>
</ol>
<p dir="auto">Even in the lufact() we can then use this new opaque object, so that it doesn't print all wrong.</p>