亚洲欧美第一页_禁久久精品乱码_粉嫩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精品精华液一区二区三区| 美国精品在线观看| 激情综合网最新| 国产在线精品一区在线观看麻豆| 黄色小说综合网站| 国产iv一区二区三区| 成人成人成人在线视频| 91蜜桃传媒精品久久久一区二区| 99久久精品国产导航| 色婷婷综合久色| 欧美日韩另类一区| 精品国产不卡一区二区三区| 国产欧美1区2区3区| 亚洲色欲色欲www| 亚洲第一狼人社区| 麻豆freexxxx性91精品| 国产老女人精品毛片久久| 99精品热视频| 欧美精品久久久久久久多人混战| 日韩欧美www| 欧美激情一区二区三区在线| 亚洲综合免费观看高清完整版 | 亚洲尤物在线视频观看| 性久久久久久久| 国产精品888| 在线欧美一区二区| 日韩欧美国产一二三区| 国产精品毛片久久久久久久| 亚洲国产aⅴ成人精品无吗| 国产真实乱子伦精品视频| 99精品久久久久久| 日韩视频不卡中文| 亚洲日本一区二区三区| 日本v片在线高清不卡在线观看| 丰满少妇在线播放bd日韩电影| 欧美三区在线观看| 中文一区在线播放| 蜜桃久久精品一区二区| 色8久久人人97超碰香蕉987| 精品国产在天天线2019| 亚洲精选在线视频| 成人免费视频app| 日韩一区二区三区视频在线观看| 国产精品视频在线看| 看电影不卡的网站| 在线观看一区二区视频| 国产欧美精品一区二区色综合朱莉| 亚洲国产一区视频| 91污在线观看| 国产精品水嫩水嫩| 激情综合色丁香一区二区| 欧美三级中文字| 亚洲天堂2016| 成人激情av网| 国产三级三级三级精品8ⅰ区| 日韩激情一二三区| 在线视频国内自拍亚洲视频| 国产精品伦一区| 国产精品77777竹菊影视小说| 欧美高清性hdvideosex| 亚洲最新在线观看| 一本大道久久a久久精二百| 国产精品妹子av| 成人一区二区视频| 国产精品欧美一级免费| 丁香六月综合激情| 国产精品网站在线观看| 国产成人在线色| 国产精品无人区| 成人教育av在线| 亚洲色图在线播放| 91麻豆精品在线观看| 亚洲精品第1页| 欧美色图一区二区三区| 一区二区国产盗摄色噜噜| 色视频欧美一区二区三区| 国产精品美女视频| 色天天综合色天天久久| 亚洲国产精品自拍| 欧美一卡二卡在线观看| 国产中文字幕一区| 中文字幕一区在线| 91成人在线观看喷潮| 天天操天天色综合| 欧美电影免费观看高清完整版在线观看| 婷婷一区二区三区| 久久―日本道色综合久久| 国产**成人网毛片九色| 亚洲理论在线观看| 欧美精品视频www在线观看| 五月激情丁香一区二区三区| 5566中文字幕一区二区电影 | 日韩欧美一二三四区| 久久99精品久久久久久国产越南 | 蜜臀av一区二区| 国产精品午夜免费| 欧美在线短视频| 精品一区二区三区久久| 成人欧美一区二区三区小说| 欧美日韩国产高清一区二区三区 | 91在线视频播放地址| 丝袜美腿亚洲一区二区图片| 2020国产精品久久精品美国| 一本久久综合亚洲鲁鲁五月天| 日韩精品三区四区| 国产欧美日韩激情| 欧美喷潮久久久xxxxx| 国产精品一线二线三线| 亚洲一区影音先锋| 国产三级欧美三级日产三级99| 欧美性感一区二区三区| 国产成人精品免费一区二区| 午夜精品久久久久久久| 国产精品久线在线观看| 日韩午夜电影av| 在线观看免费成人| 高潮精品一区videoshd| 婷婷成人激情在线网| 亚洲另类春色国产| 国产日韩欧美综合一区| 日韩一级免费观看| 欧美视频中文字幕| 成人av在线影院| 国产一区二三区好的| 欧美a一区二区| 五月婷婷综合网| 亚洲精品videosex极品| 国产欧美日韩视频一区二区| 日韩视频国产视频| 欧美日韩中字一区| 色狠狠一区二区| 不卡av电影在线播放| 国产一区二区不卡老阿姨| 天天做天天摸天天爽国产一区| 亚洲欧美另类久久久精品| 国产精品久久久久久久久免费相片| 日韩欧美卡一卡二| 日韩视频一区二区| 欧美一级在线免费| 日韩欧美在线一区二区三区| 欧美亚洲自拍偷拍| 欧美性生活大片视频| 色视频欧美一区二区三区| 一本大道久久a久久精品综合| 不卡的av电影| 99精品1区2区| 色中色一区二区| 91在线无精精品入口| 色综合视频一区二区三区高清| 成人免费观看av| 99re热视频精品| 欧美性猛交xxxxxx富婆| 欧美探花视频资源| 欧美二区在线观看| 欧美一区二区三区日韩视频| 日韩欧美不卡在线观看视频| 欧美精品一区二区不卡| 国产亚洲福利社区一区| 国产亚洲视频系列| 1024亚洲合集| 亚洲国产精品久久艾草纯爱| 日韩在线一区二区三区| 美国十次综合导航| 丁香激情综合国产| 色噜噜狠狠成人中文综合| 在线观看国产一区二区| 日韩一区二区三区免费看 | 另类成人小视频在线| 久久av资源站| 成人av免费在线播放| 在线日韩av片| 久久新电视剧免费观看| 国产精品高潮呻吟| 日韩精品电影在线观看| 激情综合色综合久久综合| 成人av网址在线观看| 在线播放91灌醉迷j高跟美女 | 亚洲图片有声小说| 精品一区二区三区香蕉蜜桃 | 精品久久久久久久一区二区蜜臀| 久久久噜噜噜久久中文字幕色伊伊 | www.欧美.com| 欧美日韩精品综合在线| 久久久久九九视频| 亚洲黄色免费网站| 国产精一区二区三区| 欧美一a一片一级一片| 久久久影视传媒| 亚洲国产中文字幕在线视频综合| 国产一区二区按摩在线观看| 欧美色偷偷大香| 欧美激情一区二区三区| 丝袜诱惑亚洲看片| 9色porny自拍视频一区二区| 欧美一区二区在线播放| 亚洲精品视频免费观看| 国产成人精品一区二区三区网站观看|