MCPcopy Create free account
hub / github.com/FreeFem/FreeFem-sources / generate_queue

Method generate_queue

3rdparty/dissection/src/Driver/QueueRuntime.cpp:776–2320  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

774}
775
776void QueueRuntime::generate_queue(C_task_seq* &queue_symb_,
777 list<C_task_seq*>* & queue_static_,
778 vector<C_task_seq *>* &queue_dynamic_,
779 list<C_task *> &queue_null_,
780 // list<C_task *> &queue_dummy_,
781 Dissection::Tree* btree,
782 vector<int>* children,
783 vector<C_task *>* tasks_SparseSymb,
784 vector<C_task *>* tasks_SparseNum,
785 vector<C_task *>* tasks_SparseLocalSchur,
786 vector<C_task *>* tasks_DFillSym,
787 vector<C_task *>* tasks_DFullLDLt,
788 vector<C_task *>* tasks_DTRSMScale,
789 vector<C_task *>* tasks_DGEMM,
790 vector<C_task *>** tasks_Dsub,
791 vector<C_task *>* tasks_deallocLower,
792 vector<C_task *>* tasks_deallocLocalSchur,
793 long **nops_queue,
794 vector<vector<int> > all_fathersIndex,
795 vector<int> nrow_DFullLDLt,
796 vector<bool> isMergedDTRSM,
797 vector<bool> isDividedDTRSM,
798 const int level_last)
799{
800 // begin : task squence for symmbolic factorization
801 const int num_threads = _num_threads;
802 const int nb_doms_dense = (1U << level_last) - 1;
803
804 { //begin scope : task_name
805 list<C_task_seq*> queue_tmp;
806 string task_name = "l " + to_string(level_last);
807
808 const int begdom = 1U << level_last;
809 const int enddom = begdom * 2;
810
811 for (int d = begdom; d < enddom; d++) {
812 const int j = d - begdom;
813 C_task_seq* tmp =
814 new C_task_seq(C_SPARSESYMBFACT,
815 _null_name, // dummy
816 (-1), // mutex_id
817 TASK_SINGLE,
818 1,
819 level_last,
820 (-1), // phase
821 &tasks_SparseSymb[j],
822 0,
823 1,
824 *(tasks_SparseSymb[j][0]->ops_complexity));
825 queue_tmp.push_back(tmp);
826 }
827 //
828 queue_tmp.sort(C_task_seq_complexity_greater);
829 vector<C_task *> *task_tmp = new vector<C_task *>;
830 task_tmp->resize(begdom);
831 int k = 0;
832 for (list<C_task_seq*>::iterator it = queue_tmp.begin();
833 it != queue_tmp.end(); ++it, k++) {

Callers 3

CopyQueueFwBwMethod · 0.80
SymbolicFact_Method · 0.80
generate_queueMethod · 0.80

Calls 14

copytask_list2seqFunction · 0.85
IndexTaskFunction · 0.85
task_assign_diag1Function · 0.85
task_assign_diag2Function · 0.85
get_process_idFunction · 0.85
sortMethod · 0.80
selfIndexMethod · 0.80
to_stringFunction · 0.50
push_backMethod · 0.45
resizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected