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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? marslib.cu

?? GPU實(shí)現(xiàn)的MapReduce framework,對(duì)于學(xué)習(xí)并行編程和cuda平臺(tái)的編程方面有著極好的參考價(jià)值
?? CU
字號(hào):
/** 
 *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;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久99| 国产精品久久久久aaaa| 成人丝袜18视频在线观看| 亚洲乱码国产乱码精品精98午夜| 日韩欧美精品三级| 欧美综合一区二区| 国产一区二区三区久久悠悠色av| 亚洲自拍欧美精品| 国产日产欧美精品一区二区三区| 欧美蜜桃一区二区三区| 99久久精品免费| 国产在线视频不卡二| 亚洲国产三级在线| 国产精品国产自产拍在线| 日韩欧美区一区二| 欧美视频一区在线| 91性感美女视频| 国产精品系列在线播放| 日韩av一区二| 亚洲一区二区中文在线| 中文字幕一区日韩精品欧美| 久久久一区二区三区捆绑**| 日韩午夜激情视频| 欧美三日本三级三级在线播放| 99视频一区二区三区| 国产精品996| 麻豆精品在线观看| 日韩av电影免费观看高清完整版 | 国产精品视频第一区| 日韩欧美一级片| 91麻豆精品国产91| 欧美色图一区二区三区| 日本韩国欧美一区| 99国产麻豆精品| 99久久国产综合精品色伊 | 成人黄色一级视频| 国产成人av资源| 国产麻豆精品久久一二三| 久久精品久久99精品久久| 奇米一区二区三区| 日韩国产一二三区| 日韩在线一二三区| 日韩精品一区第一页| 午夜a成v人精品| 五月激情丁香一区二区三区| 亚洲第一福利一区| 亚洲成人在线网站| 午夜精品一区在线观看| 亚洲国产视频一区二区| 天天综合网 天天综合色| 亚洲成va人在线观看| 日韩精品一二区| 奇米色777欧美一区二区| 麻豆精品国产91久久久久久| 精一区二区三区| 国内精品不卡在线| 成人性生交大片免费看中文网站| 成人综合在线网站| 91香蕉视频污| 欧美色图12p| 欧美大片国产精品| 久久久99久久精品欧美| 国产精品视频九色porn| 亚洲免费观看高清完整版在线观看熊| 伊人性伊人情综合网| 性欧美疯狂xxxxbbbb| 久久精品国产亚洲5555| 国产a久久麻豆| 91视频国产资源| 欧美日韩午夜影院| 欧美精品一区二区三区四区| 国产欧美精品一区二区色综合 | 日韩女同互慰一区二区| 亚洲国产精品久久不卡毛片| 天天射综合影视| 国产精品伊人色| 色综合久久天天| 91精品婷婷国产综合久久性色| 精品成人免费观看| 专区另类欧美日韩| 奇米一区二区三区av| va亚洲va日韩不卡在线观看| 欧美三级中文字幕在线观看| 久久亚洲免费视频| 一区二区三区中文字幕精品精品 | 亚洲已满18点击进入久久| 卡一卡二国产精品| 日本福利一区二区| 日韩三级高清在线| 亚洲色图制服诱惑| 极品美女销魂一区二区三区免费 | 精品久久五月天| 亚洲裸体xxx| 精品在线播放免费| 色婷婷精品久久二区二区蜜臀av| 欧美一级日韩免费不卡| 中文字幕在线观看一区| 久久国产精品99精品国产| 91啪在线观看| 久久蜜桃一区二区| 性感美女久久精品| 99精品国产热久久91蜜凸| 日韩欧美国产一区在线观看| 亚洲美女屁股眼交3| 国产一区 二区| 7777精品伊人久久久大香线蕉经典版下载| 欧美国产精品专区| 激情六月婷婷久久| 91麻豆精品国产自产在线观看一区| 中文字幕一区二区三区色视频| 国产最新精品免费| 欧美人妇做爰xxxⅹ性高电影| 国产精品丝袜在线| 极品美女销魂一区二区三区| 欧美性生交片4| 亚洲欧美激情视频在线观看一区二区三区| 韩国成人精品a∨在线观看| 欧美日韩精品福利| 亚洲人123区| 成人午夜视频网站| 久久亚洲精精品中文字幕早川悠里| 亚洲国产精品久久久男人的天堂 | 日本不卡123| 欧美在线看片a免费观看| 国产精品色一区二区三区| 韩国v欧美v亚洲v日本v| 欧美一级二级三级乱码| 午夜精品一区二区三区免费视频 | 亚洲电影在线播放| 91视视频在线观看入口直接观看www | 久久一区二区视频| 天天av天天翘天天综合网色鬼国产| 色94色欧美sute亚洲线路二| 中文字幕亚洲一区二区va在线| 国产精品自在在线| 久久综合狠狠综合久久综合88| 蜜桃久久久久久久| 精品国产a毛片| 国产综合久久久久影院| 久久日韩粉嫩一区二区三区| 国产裸体歌舞团一区二区| xvideos.蜜桃一区二区| 久久精品国产秦先生| 337p粉嫩大胆色噜噜噜噜亚洲| 日本人妖一区二区| 日韩久久久久久| 国模大尺度一区二区三区| 久久综合色天天久久综合图片| 国精产品一区一区三区mba桃花 | 欧美在线一区二区| 午夜欧美电影在线观看| 777久久久精品| 激情五月婷婷综合网| 久久―日本道色综合久久| 成人午夜看片网址| 亚洲色图视频网| 欧美视频第二页| 另类调教123区| 国产欧美精品在线观看| 99久久精品国产导航| 亚洲午夜av在线| 日韩免费看网站| 国产精品99久久久| 一区二区三区中文字幕| 欧美日韩精品一区二区天天拍小说| 免费观看日韩电影| 欧美激情一区二区三区在线| 成人激情免费视频| 亚洲成av人影院| 精品成人一区二区| 91性感美女视频| 免费在线视频一区| 国产日韩精品一区二区三区| 色综合天天在线| 日韩高清一级片| 亚洲国产成人自拍| 欧美日韩mp4| 成人性生交大片免费看在线播放 | 不卡的电影网站| 丝袜亚洲另类欧美综合| 久久久另类综合| 91久久精品一区二区二区| 麻豆一区二区99久久久久| 亚洲欧洲三级电影| 7777精品伊人久久久大香线蕉经典版下载 | 偷拍一区二区三区四区| 久久亚洲精品国产精品紫薇| 91搞黄在线观看| 国产一区二区在线电影| 亚洲综合激情网| 久久久www成人免费无遮挡大片| 日本久久一区二区| 黑人精品欧美一区二区蜜桃| 亚洲精品国产无天堂网2021 | 欧美精品免费视频| 成人亚洲精品久久久久软件| 日韩不卡免费视频| 国产精品黄色在线观看| 欧美大片国产精品| 欧美日韩亚洲高清一区二区|