Search::Search(const std::string & m_query, completion_t completion)
 {
     static std::once_flag onceFlag;
     std::call_once(onceFlag,[](){
         initializeIndex();
     });
     search(m_query, completion);
 }
示例#2
0
BPlusIndexP::BPlusIndexP(const char* fileName)
{
	_bufferManager = new BufferManager(fileName, 1);

	initializeIndex();
}
示例#3
0
void run(char* func_name, int iRun)
{
	iter=0;
	iter_each=0;
	cnArch=0;

	char objsal[256];
	char varsal[256];
	char timesal[256];
	strcpy(testInstance,func_name);

	double start_time,end_time;
	double duration;

	sprintf(objsal,"results/FUN_%s_%d_%d",testInstance,nDim,iRun);
	sprintf(varsal,"results/VAR_%s_%d_%d",testInstance,nDim,iRun);
	sprintf(timesal,"results/TIME_%s_%d",testInstance,nDim);

	if(mpi_rank==0)
		start_time=clock();

	initializeProblem();
	initializePopulation();
// 	showPopulation();
	initializeIndex();
	if(mpi_color)
		evaluatePopInitial();
	MPI_Barrier(MPI_COMM_WORLD);
	if(master_flag)
		collection_initial();
	if(!mpi_color&&mpi_rank_master==mpi_rank_master_archive)
		refineRepertory_generateArchive();
	MPI_Barrier(MPI_COMM_WORLD);
	if(master_flag)
		SynchronizeArchive();
	SynchronizeArchive_one();
// 	refineRepertory_generateArchive_SDE();
// 	showArchive();
// 	showLimits();
	if(mpi_color)
	{
		update_xBest_initial();
		update_xBest_archive();
	}
	MPI_Barrier(MPI_COMM_WORLD);
	iter=nPop*nObj;

// 	for(int i=0;i<mpi_size;i++)
// 	{
// 		if(i==0&&mpi_rank==0)
// 			showArchive();
// 		if(i!=0&&mpi_rank==i)
// 		{
// 			showGlobalBest();
// 			showPopulation();
// 		}
// 		MPI_Barrier(MPI_COMM_WORLD);
// 	}

	while(iter<maxIteration)
	{
		iter_each=0;
		nRep=0;
		if(mpi_color)
		{
			update_objective();
			permIndexes();
		}
		else
		{
			update_archive();
			perm_archIndex();
		}
		MPI_Barrier(MPI_COMM_WORLD);
// 		showGlobalBest();
		if(master_flag)
		{
			collect2master_archive();
			if(mpi_rank_master==mpi_rank_master_archive)
				refineRepertory_generateArchive();
			SynchronizeArchive();
		}
		SynchronizeArchive_one();
		if(mpi_color)
			update_xBest_archive();
// 		showArchive();
		MPI_Barrier(MPI_COMM_WORLD);
		update_iteration();
	}

	if(mpi_rank==0)
	{
		end_time=clock();
		duration=(end_time-start_time)/CLOCKS_PER_SEC;
	}

	if(mpi_rank==0)
	{
		fpttime=fopen(timesal,"a");
		fprintf(fpttime, "%e\n", duration);

		get_nonDominateSize();

		fptobj=fopen(objsal,"w");
		save_obj(fptobj);

		fptvar=fopen(varsal,"w");
		save_var(fptvar);

		fclose(fpttime);
		fclose(fptobj);
		fclose(fptvar);
	}
}