NEURON
node_order_optim.h
Go to the documentation of this file.
1 #pragma once
2 
3 namespace neuron {
4 
5 extern int interleave_permute_type;
6 
7 /// @brief Select node ordering for optimum gaussian elimination
8 /// @param type
9 /// 0 cell together (Section construction order)
10 /// 1 Interleave, identical cells warp adjacent
11 /// 2 Depth order, optimize adjacent nodes to have adjacent parents.
13 
14 /// @brief Compute and carry out the permutation for interleave_permute_type
16 
17 /**
18  *
19  * \brief Solve the Hines matrices based on the interleave_permute_type (1 or 2).
20  *
21  * For interleave_permute_type == 1 : Naive interleaving -> Each execution thread deals with one
22  * Hines matrix (cell) For interleave_permute_type == 2 : Advanced interleaving -> Each Hines matrix
23  * is solved by multiple execution threads (with coalesced memory access as well)
24  */
25 extern void solve_interleaved(int ith);
26 
27 } // namespace neuron
In mechanism libraries, cannot use auto const token = nrn_ensure_model_data_are_sorted(); because the...
Definition: tnode.hpp:17
void nrn_permute_node_order()
Compute and carry out the permutation for interleave_permute_type.
Definition: cellorder.cpp:425
int interleave_permute_type
Definition: cellorder.cpp:42
void solve_interleaved(int ith)
Solve the Hines matrices based on the interleave_permute_type (1 or 2).
int nrn_optimize_node_order(int type)
Select node ordering for optimum gaussian elimination.
Definition: cellorder.cpp:336
short type
Definition: cabvars.h:10