亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? marslib.cu

?? GPU實現的MapReduce framework,對于學習并行編程和cuda平臺的編程方面有著極好的參考價值
?? CU
字號:
/** 
 *This is the source code for Mars, a MapReduce framework on graphics
 *processors.
 *Author: Wenbin Fang ( HKUST), Bingsheng He (HKUST)
 *Mentor: Naga K. Govindaraju (Microsoft Corp.), Qiong Luo (HKUST), Tuyong
 *Wang (Sina.com).
 *If you have any question on the code, please contact us at {saven,
 *wenbin, luo}@cse.ust.hk.
 *The copyright is held by HKUST. Mars is provided "as is" without any 
 *guarantees of any kind.
 */
    
//scheduler
#include "MarsInc.h"
#include "MarsSchedMem.cu"
#include "MarsSchedFile.cu"
 
//------------------------------------------------------------
//validate runtime configurations
//------------------------------------------------------------
void InitMapReduce(Spec_t *spec)
{   
	BEN_ASSERT(spec != NULL);

	if (spec->mode & GPU)
		D_ANYDEVICE();
 
	//validate spec->mode
	if (!(spec->mode & USE_MEM) && !(spec->mode & USE_FILE))
		spec->mode |= USE_MEM;
	if (!(spec->mode & GPU) && !(spec->mode & CPU))
		spec->mode |= CPU;
	if (!(MAP_ONLY) && !(MAP_SORT) & !(MAP_SORT_REDUCE))
		spec->mode |= MAP_ONLY;
   
	//validate filename
	if (spec->interFile.keyFile == NULL)
		spec->interFile.keyFile = BenStrDup(DEFAULT_INTER_KEY_FILE);
	if (spec->interFile.valFile == NULL)
		spec->interFile.valFile = BenStrDup(DEFAULT_INTER_VAL_FILE);
	if (spec->interFile.indexFile == NULL)
		spec->interFile.indexFile = BenStrDup(DEFAULT_INTER_INDEX_FILE);
	if (spec->interFile.rangeFile == NULL)
		spec->interFile.rangeFile = BenStrDup(DEFAULT_INTER_RANGE_FILE);
	
	if (spec->outputFile.keyFile == NULL)
		spec->outputFile.keyFile = BenStrDup(DEFAULT_OUTPUT_KEY_FILE);
	if (spec->outputFile.valFile == NULL)
		spec->outputFile.valFile = BenStrDup(DEFAULT_OUTPUT_VAL_FILE);
	if (spec->outputFile.indexFile == NULL)
		spec->outputFile.indexFile = BenStrDup(DEFAULT_OUTPUT_INDEX_FILE);
	if (spec->outputFile.rangeFile == NULL)
		spec->outputFile.rangeFile = BenStrDup(DEFAULT_OUTPUT_RANGE_FILE);

	if (spec->tmpFile.keyFile == NULL)
		spec->tmpFile.keyFile = BenStrDup(DEFAULT_TMP_KEY_FILE);
	if (spec->tmpFile.valFile == NULL)
		spec->tmpFile.valFile = BenStrDup(DEFAULT_TMP_VAL_FILE);
	if (spec->tmpFile.indexFile == NULL)
		spec->tmpFile.indexFile = BenStrDup(DEFAULT_TMP_INDEX_FILE);
	if (spec->tmpFile.rangeFile == NULL)
		spec->tmpFile.rangeFile = BenStrDup(DEFAULT_TMP_RANGE_FILE);;
 
	//validate thread number
	if (spec->cpuMapThreadNum <= 0) 
		spec->cpuMapThreadNum = DEFAULT_CPU_THREAD_NUM;
	if (spec->cpuReduceThreadNum <= 0) 
		spec->cpuReduceThreadNum = DEFAULT_CPU_THREAD_NUM;
	if (spec->gpuMapGridDim <= 0)
		spec->gpuMapGridDim = DEFAULT_GPU_DIM;
	if (spec->gpuMapBlockDim <= 0)
		spec->gpuMapBlockDim = DEFAULT_GPU_DIM;
	if (spec->gpuReduceGridDim <= 0)
		spec->gpuReduceGridDim = DEFAULT_GPU_DIM;
	if (spec->gpuReduceBlockDim <= 0)
		spec->gpuReduceBlockDim = DEFAULT_GPU_DIM;
 
	//validate gpu share memory size
	if (spec->gpuMapSharedMemSize > GPU_SHARED_MEM_SIZE)
		spec->gpuMapSharedMemSize = 0;
	if (spec->gpuReduceSharedMemSize > GPU_SHARED_MEM_SIZE)
		spec->gpuReduceSharedMemSize = 0;

	if (spec->flushThreshhold <= 0)
		spec->flushThreshhold = DEFAULT_THRESHHOLD;

	//validate gpu input record ratio in all input records
	//range from 0.0 to 1.0
	if (spec->mode & GPU &&
		spec->mode & CPU)
	{   
		if (abs(spec->gpuInputRatio - 0.0f) < FLOAT_TINY)
		{
			spec->mode &= ~GPU;
			spec->mode |= CPU;
		}
		else if (abs(spec->gpuInputRatio - 1.0f) < FLOAT_TINY)
		{
			spec->mode &= ~GPU;
			spec->mode |= CPU;
		}
		else if (spec->gpuInputRatio < 0.0f || spec->gpuInputRatio > 1.0f)
		{
			spec->gpuInputRatio = DEFAULT_GPU_RATIO;
		}
	}
       
	FlushInputToDisk(spec);
}
 

//-----------------------------------------------------------
//Scheduler -- CPU or GPU processing, USE_MEM
//Param: phase -- MAP or REDUCE
//Return: 1 for success, 0 for failure
//-----------------------------------------------------------
char ScheduleSingleMem(Spec_t *spec, char phase)
{ 
	if (phase == MAP)
	{
		SingleMapMem(spec);
		return 1; 
	}   
	else if (phase == SORT)
	{
		SingleSortMem(spec);
		return 1;
	}
	else if (phase == REDUCE)
	{     
		if (spec->mode & MAP_SORT_REDUCE)
			SingleReduceMem(spec);
		return 1;
	}   
	else if (phase == MERGE_INTER)
	{
			SingleMergeInterMem(spec);
		return 1;
	}
	else if (phase == MERGE_OUTPUT)
	{
		if (spec->mode & MAP_SORT_REDUCE)
			SingleMergeOutputMem(spec);
		return 1;
	}
	
	return 0;
}
  
//-----------------------------------------------------------
//Scheduler -- CPU-GPU co-processing, USE_MEM
//Param: phase -- MAP or REDUCE
//Return: 1 for success, 0 for failure
//-----------------------------------------------------------
char ScheduleCoprocessMem(Spec_t *spec, char phase)
{ 
	if (phase == MAP)
	{
		CoprocessMapMem(spec);
		return 1;
	}
	else if (phase == REDUCE)
	{
		if (spec->mode & MAP_SORT_REDUCE)
			CoprocessReduceMem(spec);
		return 1;  
	} 
	else if (phase == MERGE_INTER)
	{  
		CoprocessMergeInterMem(spec);
 		return 1;
	}
	else if (phase == MERGE_OUTPUT)
	{
		if (spec->mode & MAP_SORT_REDUCE)
			CoprocessMergeOutputMem(spec);
		return 1;
	} 
	
	return 0;
} 
               
//-----------------------------------------------------------
//Scheduler -- CPU or GPU processing, USE_FILE
//Param: phase -- MAP or REDUCE
//Return: 1 for success, 0 for failure
//-----------------------------------------------------------
char ScheduleSingleFile(Spec_t *spec, char phase)
{       
	if (phase == MAP)
	{
		SingleMapFile(spec);
		return 1;
	}
	else if (phase == REDUCE)
	{ 
		if (spec->mode & MAP_SORT_REDUCE)
			SingleReduceFile(spec);
		return 1; 
	} 
	else if (phase == MERGE_INTER)
	{ 
		SingleMergeInterFile(spec); 
		return 1; 
	}
	else if (phase == MERGE_OUTPUT)
	{
		if (spec->mode & MAP_SORT_REDUCE)
			SingleMergeOutputFile(spec);
		return 1;
	}

	return 0;
}  
  
//-----------------------------------------------------------
//Scheduler -- CPU-GPU co-processing, USE_FILE
//Param: phase -- MAP or REDUCE
//Return: 1 for success, 0 for failure
//-----------------------------------------------------------
char ScheduleCoprocessFile(Spec_t *spec, char phase)
{ 
	if (phase == MAP)
	{   
		CoprocessMapFile(spec);
		return 1;
	}
	else if (phase == REDUCE)
	{   
		if (spec->mode & MAP_SORT_REDUCE)
			CoprocessReduceFile(spec);
		return 1; 
	}  
	else if (phase == MERGE_INTER)
	{     
		CoprocessMergeInterFile(spec);
		return 1;
	}   
	else if (phase == MERGE_OUTPUT)
	{
		if (spec->mode & MAP_SORT_REDUCE)
			CoprocessMergeOutputFile(spec);
		return 1;
	}
	 
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线观看国产 | 成人精品免费视频| 99视频超级精品| 日韩免费视频一区| 亚洲一区二区三区四区在线| 国产专区综合网| 91精品婷婷国产综合久久竹菊| 欧美国产一区二区| 久久精品av麻豆的观看方式| 91麻豆精品秘密| 久久九九国产精品| 九九九精品视频| 91精品国产手机| 亚洲香肠在线观看| 色哟哟国产精品| 亚洲啪啪综合av一区二区三区| 国产一区二区视频在线| 欧美一级视频精品观看| 亚洲国产人成综合网站| 色婷婷av一区二区三区gif| 欧美激情综合五月色丁香小说| 精品一区二区三区蜜桃| 制服.丝袜.亚洲.另类.中文| 亚洲一区二区三区视频在线| 91蜜桃视频在线| 亚洲视频精选在线| 不卡一区在线观看| 国产欧美精品一区二区三区四区| 久久66热re国产| 欧美va亚洲va香蕉在线| 麻豆成人久久精品二区三区红 | 99久久免费视频.com| 国产日韩欧美综合在线| 国产成人无遮挡在线视频| 亚洲精品一线二线三线| 美女视频免费一区| wwwwww.欧美系列| 国产成人鲁色资源国产91色综| 久久婷婷成人综合色| 国产一区二区在线电影| 久久免费美女视频| 成人手机在线视频| 亚洲精品v日韩精品| 日本韩国一区二区三区视频| 一级精品视频在线观看宜春院| 欧美午夜精品一区| 日韩成人dvd| 欧美精品一区二区三区四区| 国产精品主播直播| 综合色中文字幕| 欧美在线一二三四区| 天天亚洲美女在线视频| 精品久久久久久久人人人人传媒 | 日韩一区欧美一区| 欧美在线视频不卡| 日韩av在线发布| 久久精品一区二区三区不卡| 成人手机电影网| 亚洲成a人在线观看| 日韩欧美电影一二三| 国产精品一线二线三线精华| 自拍视频在线观看一区二区| 欧美日韩免费一区二区三区| 精品系列免费在线观看| 中文字幕一区av| 日韩一区二区三区精品视频| 国产成人av在线影院| 一区二区三区四区精品在线视频| 欧美精品1区2区| 成人avav影音| 奇米在线7777在线精品| 国产精品的网站| 欧美一区二区黄| 色婷婷综合久久久久中文一区二区 | 国产一区免费电影| 亚洲一本大道在线| 国产亚洲精品超碰| 欧美一区2区视频在线观看| 成人午夜激情片| 日本不卡一区二区| 成人免费一区二区三区视频| 555www色欧美视频| eeuss影院一区二区三区| 日本三级亚洲精品| 亚洲欧美色图小说| 国产日产亚洲精品系列| 欧美一二区视频| 欧美综合在线视频| 99久久99久久久精品齐齐| 激情国产一区二区| 男女男精品视频| 亚洲综合久久av| 中文字幕在线一区| 亚洲精品一区在线观看| 91精品欧美久久久久久动漫 | 色呦呦国产精品| 久久精品免费观看| 午夜精品久久久久久久蜜桃app| 国产精品丝袜久久久久久app| 91精品在线麻豆| 欧美性大战久久久久久久| www.日韩av| thepron国产精品| 风间由美一区二区三区在线观看| 久久国产尿小便嘘嘘| 日韩国产精品久久| 天天免费综合色| 午夜欧美2019年伦理| 亚洲免费在线观看视频| 成人免费一区二区三区在线观看| 欧美韩国一区二区| 中文字幕一区二区三区色视频| 久久精品一区二区三区四区| 久久美女艺术照精彩视频福利播放 | 99久久精品99国产精品| 成人激情免费网站| 99麻豆久久久国产精品免费| 成人免费看黄yyy456| 国产成人av电影在线观看| 国产精品1024久久| 成人动漫视频在线| 91麻豆免费观看| 欧美色图片你懂的| 欧美高清视频不卡网| 91麻豆精品国产91久久久| 777午夜精品视频在线播放| 91麻豆精品久久久久蜜臀| 91精品国产色综合久久不卡蜜臀| 91精品国产综合久久精品性色| 欧美精品tushy高清| 欧美不卡在线视频| 亚洲国产精品成人综合| 亚洲乱码日产精品bd| 亚洲一区成人在线| 极品少妇一区二区| 成人av高清在线| 欧美日韩高清一区| 精品国产一区二区三区久久久蜜月 | 亚洲自拍偷拍综合| 日韩精品亚洲一区| 国产精品一区二区三区乱码| 成人午夜精品一区二区三区| 一本一本久久a久久精品综合麻豆| 在线观看国产91| 欧美岛国在线观看| 国产精品第五页| 日本一区中文字幕| 粉嫩aⅴ一区二区三区四区五区| 日本久久电影网| 精品国产伦一区二区三区免费| 国产精品国产成人国产三级| 香蕉影视欧美成人| 国产91富婆露脸刺激对白| 欧美日韩亚洲国产综合| 久久亚洲捆绑美女| 一卡二卡欧美日韩| 国产精品一线二线三线精华| 色老汉av一区二区三区| 精品国产一区二区精华| 亚洲黄网站在线观看| 另类调教123区| 91成人免费在线视频| 26uuu亚洲综合色| 亚洲18色成人| av不卡在线观看| 精品国产91九色蝌蚪| 亚洲综合色噜噜狠狠| 国产精品亚洲а∨天堂免在线| 欧美人牲a欧美精品| 国产精品美女www爽爽爽| 乱一区二区av| 欧美猛男超大videosgay| 综合激情成人伊人| 国产黄人亚洲片| 亚洲男同1069视频| 奇米影视一区二区三区| 一本大道久久a久久综合| 久久久久久久综合日本| 日本不卡中文字幕| 欧美日韩成人在线一区| 中文字幕一区二区三区不卡在线| 精品午夜一区二区三区在线观看| 欧美少妇xxx| 亚洲一区二区精品视频| 91在线观看免费视频| 久久久精品免费免费| 精品夜夜嗨av一区二区三区| 欧美日韩久久一区二区| 伊人色综合久久天天人手人婷| 成人免费va视频| 国产精品―色哟哟| 国产精品99久久久久久有的能看| 欧美成人艳星乳罩| 久久国产成人午夜av影院| 91精品国产乱| 蜜桃av噜噜一区| 日韩视频一区在线观看| 免费在线观看精品| 欧美成人bangbros| 国产尤物一区二区|