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

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

?? marsfunc.h

?? GPU實現的MapReduce framework,對于學習并行編程和cuda平臺的編程方面有著極好的參考價值
?? H
字號:
/**
 *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.
 */

//Function forward declarations
#ifndef __MARSFUNC_H__
#define __MARSFUNC_H__

//--------------------------------------------------------
//MarsUtils
//--------------------------------------------------------
extern "C"
Spec_t *GetDefaultSpec();
extern "C"
void AddMapInputRecord(Spec_t*		spec, 
					   void*		key, 
					   void*		val,
					   size_t		keySize, 
					   size_t		valSize);
extern "C"
void InitMapReduce(Spec_t *spec);
extern "C"
void MapReduce(Spec_t *spec);
extern "C"
void FinishMapReduce(Spec_t *spec);

extern "C"
void ResetInput(Spec_t *spec);
extern "C"
void ResetInter(Spec_t *spec);
extern "C"
void ResetOutput(Spec_t *spec);

extern "C"
void FreeChunk(ChunkInfo_t *chunk);
extern "C"
void FlushInputToDisk(Spec_t *spec);
extern "C"
bool ReadChunkFromFile(ChunkInfo_t *chunk, FileName_t *file, 
					  size_t totalRec, size_t cursor, size_t chunkSize);
extern "C"
bool ReadGroupChunkFromFile(ChunkInfo_t *chunk, FileName_t *file, 
					  size_t totalRec, size_t cursor, size_t chunkSize);
extern "C"
bool WriteChunkToFile(ChunkInfo_t *chunk, FileName_t *file, size_t *totalRecCount, char mode);

extern "C"
RecIterator_t *InitIterator(ChunkInfo_t *chunk, FileName_t *file, size_t totalRec, Spec_t *spec);
extern "C"
void FinishIterator(RecIterator_t *it);
extern "C"
char NextRec(RecIterator_t *it, Record_t *rec);

extern "C"
GroupIterator_t *InitGroupIterator(ChunkInfo_t *chunk, FileName_t *file, size_t totalGroup, Spec_t *spec);
extern "C"
char NextGroup(GroupIterator_t *it, Group_t *rec);
extern "C"
char NextRecInGroup(Group_t *group, Record_t *rec);
extern "C"
void FinishGroupIterator(GroupIterator_t *it);

#define INT	0x00
#define CHAR 0X01
#define FLOAT 0x02
#define STRING 0x03
extern "C"
void GenRecords(Spec_t *spec, char keyType, char valType, int maxRec);
extern "C"
void PrintRecords(ChunkInfo_t *chunk, FileName_t *file, size_t totalRec, Spec_t *spec,
				 char keyType, char valType, int maxRec);
void PrintGroup(ChunkInfo_t *chunk, FileName_t *file, size_t totalGroup, Spec_t *spec,
				 char keyType, char valType, int maxGroup, int maxRec);
//--------------------------------------------------------
//MarsLib
//--------------------------------------------------------
extern "C"
void InitMapReduce(Spec_t *spec);
extern "C"
char ScheduleSingleMem(Spec_t *spec, char phase);
extern "C"
char ScheduleCoprocessMem(Spec_t *spec, char phase);
extern "C"
char ScheduleSingleFile(Spec_t *spec, char phase);
extern "C"
char ScheduleCoprocessFile(Spec_t *spec, char phase);

//--------------------------------------------------------
//MarsCPULib
//--------------------------------------------------------
extern "C"
char *cpuGetVal(void *vals, int4 *index, size_t valStartIndex,
				size_t valCount, size_t i);

extern "C"
size_t cpuGetValSize(void *vals, int4 *index, size_t valStartIndex,
				size_t valCount, size_t i);

extern "C"
void StartCPUMap(Schedule_t *sched, char mode);
extern "C"
void StartCPUSort(Schedule_t *sched, char mode);
extern "C"
void StartCPUReduce(Schedule_t *sched, char mode);

extern "C"
void cpuEmitInterCount(size_t	keySize,
					   size_t	valSize,
					   size_t*	interKeysSizePerTask,
					   size_t*	interValsSizePerTask,
					   size_t*	interCountPerTask,
					   int index);
extern "C"
void cpuEmitIntermediate(char*	key, 
				 char*		val, 
				 size_t		keySize, 
				 size_t		valSize,
				 size_t*	psKeySizes,
				 size_t*	psValSizes,
				 size_t*	psCounts,
				 int2*		keyValOffsets,
				 char*		interKeys,
				 char*		interVals,
				 int4*		interOffsetSizes,
				 size_t*	curIndex, int index);

extern "C"
void cpuEmitCount(size_t		keySize,
	  size_t		valSize,
	  size_t*		outputKeysSizePerTask,
	  size_t*		outputValsSizePerTask,
	  size_t*		outputCountPerTask,
	  int			index);

extern "C"
void cpuEmit  (char*		key, 
	   char*		val, 
	   size_t		keySize, 
	   size_t		valSize,
	   size_t*		psKeySizes, 
	   size_t*		psValSizes, 
	   size_t*		psCounts, 
	   int2*		keyValOffsets, 
	   char*		outputKeys,
	   char*		outputVals,
	   int4*		outputOffsetSizes,
	   size_t*		curIndex,
       int		index);

//--------------------------------------------------------
//MarsGPULib
//--------------------------------------------------------
extern "C"
__device__ char *gpuGetVal(void *vals, int4 *index, size_t valStartIndex,
				size_t valCount, size_t i);

extern "C"
__device__ size_t gpuGetValSize(void *vals, int4 *index, size_t valStartIndex,
				size_t valCount, size_t i);

extern "C"
void StartGPUMap(Schedule_t *sched, char mode);
extern "C"
void StartGPUSort(Schedule_t *sched, char mode);
extern "C"
void StartGPUSort_cpu(Schedule_t *sched, char mode);
extern "C"
void StartGPUReduce(Schedule_t *sched, char mode);

extern "C"
__device__ void gpuEmitInterCount(size_t		keySize,
						  size_t		valSize,
						  size_t*		outputKeysSizePerTask,
						  size_t*		outputValsSizePerTask,
						  size_t*		outputCountPerTask);

extern "C"
__device__ void gpuEmitCount(size_t		keySize,
	  size_t		valSize,
	  size_t*		outputKeysSizePerTask,
	  size_t*		outputValsSizePerTask,
	  size_t*		outputCountPerTask);

extern "C"
__device__ void gpuEmit  (char*		key, 
	   char*		val, 
	   size_t		keySize, 
	   size_t		valSize,
	   size_t*		psKeySizes, 
	   size_t*		psValSizes, 
	   size_t*		psCounts, 
	   int2*		keyValOffsets, 
	   char*		outputKeys,
	   char*		outputVals,
	   int4*		outputOffsetSizes,
	   size_t*		curIndex);

//--------------------------------------------------------
//MarsScan
//--------------------------------------------------------
extern "C"
void saven_initialPrefixSum(unsigned int maxNumElements);
extern "C"
int prefexSum( int* d_inArr, int* d_outArr, int numRecords );
extern "C"
void prescanArray(int *outArray, int *inArray, int numElements);

//--------------------------------------------------------
//MarsSort
//--------------------------------------------------------
extern "C"
void QuickSortMem(ChunkInfo_t *chunk);
extern "C"
void InitGroupMem(ChunkInfo_t *chunk);
extern "C"
void GroupByMem(ChunkInfo_t *chunk);
extern "C"
int cmp_wrap(const void *arg1, const void *arg2);
extern "C"
void MergeSortFile(FileName_t *file, FileName_t *tmpfile, SortInfo_t *sortInfo, 
				   size_t chunkRecCount, size_t *totalRecCount, size_t *totalGroupCount);
extern "C"
void RearrangeKeyVal(ChunkInfo_t *chunk);
extern "C"
int GPUBitonicSortMem (void * d_inputKeyArray, int totalKeySize, void * d_inputValArray, int totalValueSize, 
		  cmp_type_t * d_inputPointerArray, int rLen, 
		  void * d_outputKeyArray, void * d_outputValArray, 
		  cmp_type_t * d_outputPointerArray, int2 ** h_outputKeyListRange
		  );

//--------------------------------------------------------
//MarsSort
//--------------------------------------------------------
extern "C"
__device__ void gpuEmitKeyFloat(float		key, 
								size_t		keySize, 
								size_t*	psKeySizes,
								size_t*	psCounts,
								int2*		keyValOffsets,
								char*		interKeys,
								int4*		interOffsetSizes,
								size_t*	curIndex);
extern "C"
__device__ void gpuEmitValFloat(float		val, 
								size_t		valSize,
								size_t*	psValSizes,
								size_t*	psCounts,
								int2*		keyValOffsets,
								char*		interVals,
								int4*		interOffsetSizes,
								size_t*	curIndex);
extern "C"
__device__ void gpuEmitKeyFloat2(float2		key, 
								size_t		keySize, 
								size_t*	psKeySizes,
								size_t*	psCounts,
								int2*		keyValOffsets,
								char*		interKeys,
								int4*		interOffsetSizes,
								size_t*	curIndex);
extern "C"
__device__ void gpuEmitValFloat2(float2		val, 
								size_t		valSize,
								size_t*	psValSizes,
								size_t*	psCounts,
								int2*		keyValOffsets,
								char*		interVals,
								int4*		interOffsetSizes,
								size_t*	curIndex);
extern "C"
__device__ void gpuEmitKeyInt(int		key, 
								size_t		keySize, 
								size_t*	psKeySizes,
								size_t*	psCounts,
								int2*		keyValOffsets,
								char*		interKeys,
								int4*		interOffsetSizes,
								size_t*	curIndex);
extern "C"
__device__ void gpuEmitValInt(int		val, 
								size_t		valSize,
								size_t*	psValSizes,
								size_t*	psCounts,
								int2*		keyValOffsets,
								char*		interVals,
								int4*		interOffsetSizes,
								size_t*	curIndex);
extern "C"
__device__ void gpuEmitKeyInt2(int2		key, 
							  size_t		keySize, 
							  size_t*	psKeySizes,
							  size_t*	psCounts,
							  int2*		keyValOffsets,
							  char*		interKeys,
							  int4*		interOffsetSizes,
							  size_t*	curIndex);
extern "C"
__device__ void gpuEmitValInt2(int2		val, 
							  size_t		valSize,
							  size_t*	psValSizes,
							  size_t*	psCounts,
							  int2*		keyValOffsets,
							  char*		interVals,
							  int4*		interOffsetSizes,
							  size_t*	curIndex);
__device__ void gpuEmitKeyInt5(int5		key, 
							   size_t		keySize, 
							   size_t*	psKeySizes,
							   size_t*	psCounts,
							   int2*		keyValOffsets,
							   char*		interKeys,
							   int4*		interOffsetSizes,
							   size_t*	curIndex);
extern "C"
__device__ void gpuEmitValInt5(int5		val, 
							   size_t		valSize,
							   size_t*	psValSizes,
							   size_t*	psCounts,
							   int2*		keyValOffsets,
							   char*		interVals,
							   int4*		interOffsetSizes,
							   size_t*	curIndex);
extern "C"
__device__ void gpuEmitKeyPointer(char	*key, 
								  size_t		keySize, 
								  size_t*	psKeySizes,
								  size_t*	psCounts,
								  int2*		keyValOffsets,
								  char*		interKeys,
								  int4*		interOffsetSizes,
								  size_t*	curIndex);

extern "C"
__device__ void gpuEmitValPointer(char		*val, 
								  size_t		valSize,
								  size_t*	psValSizes,
								  size_t*	psCounts,
								  int2*		keyValOffsets,
								  char*		interVals,
								  int4*		interOffsetSizes,
								  size_t*	curIndex);

extern "C"
__device__ void gpuEmitIntermediate(char*		key, 
									char*		val, 
									size_t		keySize, 
									size_t		valSize,
									size_t*	psKeySizes,
									size_t*	psValSizes,
									size_t*	psCounts,
									int2*		keyValOffsets,
									char*		interKeys,
									char*		interVals,
									int4*		interOffsetSizes,
									size_t*	curIndex);
#endif //__MARSFUNC_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情艳妇裸体舞| 精品久久久久久久久久久久久久久 | 久久av老司机精品网站导航| 日韩欧美资源站| 欧美日韩五月天| 精品视频999| 欧美日韩成人在线一区| 欧美在线观看一二区| 欧美色网站导航| 日韩一区二区三区四区五区六区| 7777精品伊人久久久大香线蕉超级流畅| 欧美亚洲禁片免费| 91精品国产全国免费观看 | 夫妻av一区二区| 91免费国产视频网站| 91国在线观看| 日韩欧美亚洲一区二区| 亚洲精品一区在线观看| 国产精品乱码一区二三区小蝌蚪| 中文字幕一区不卡| 亚洲综合激情另类小说区| 午夜久久福利影院| 国内精品伊人久久久久av影院 | 日韩精品中文字幕在线一区| 久久综合网色—综合色88| 国产精品久久精品日日| 一个色妞综合视频在线观看| 日韩成人伦理电影在线观看| 国产一区二区三区美女| 色婷婷综合久久久中文一区二区| 欧美日韩中字一区| 国产精品一区二区不卡| 亚洲精品成人天堂一二三| 亚洲成人三级小说| 激情综合网激情| 99精品偷自拍| 精品免费视频.| 国产日韩欧美a| 亚洲成人av中文| 成人性生交大合| 欧美一区二区三区爱爱| 亚洲日本乱码在线观看| 久久精品国产亚洲aⅴ| 色播五月激情综合网| 精品乱人伦小说| 五月天网站亚洲| 成人av影院在线| 欧美巨大另类极品videosbest | 日本美女视频一区二区| 国产精品99久久久久久久女警| 91在线小视频| 91精品国产综合久久婷婷香蕉| 国产精品毛片a∨一区二区三区| 日韩高清电影一区| 91福利视频网站| 国产精品久久久久一区| 久久国产福利国产秒拍| 欧美日韩久久久| 一区二区三区不卡在线观看| 国产99一区视频免费| 欧美大片国产精品| 日韩国产欧美三级| 欧美午夜影院一区| 一区二区成人在线| 91免费国产在线| 日韩一区二区三区av| 宅男噜噜噜66一区二区66| 国产精品对白交换视频| 国产一区二区三区日韩 | 91久久精品国产91性色tv| 久久久久青草大香线综合精品| 日韩电影在线观看电影| 欧美在线高清视频| 久久久久久久久久久久电影 | 日韩欧美另类在线| 免费高清在线视频一区·| 欧美久久一二区| 蜜桃视频在线一区| 日韩一级黄色片| 激情综合五月婷婷| 中文字幕不卡在线播放| 国产91高潮流白浆在线麻豆| 亚洲国产经典视频| 99久久99久久精品国产片果冻| 国产精品视频一二三| 91色婷婷久久久久合中文| 成人免费在线播放视频| 在线视频国内一区二区| 日日嗨av一区二区三区四区| 欧美成人综合网站| 国产91富婆露脸刺激对白| 亚洲视频中文字幕| 欧美日韩国产综合一区二区 | 国产亚洲人成网站| 成人午夜视频福利| 国产精品短视频| 欧美日韩三级一区| 韩国三级电影一区二区| 国产精品人成在线观看免费| 日本国产一区二区| 久久99国产精品免费| 亚洲欧美中日韩| 91麻豆精品国产自产在线 | 欧美成人猛片aaaaaaa| 国产美女娇喘av呻吟久久| 日韩一区在线看| 日韩精品一区二区三区中文不卡 | 在线观看91精品国产入口| 奇米综合一区二区三区精品视频 | 调教+趴+乳夹+国产+精品| 精品欧美一区二区久久| 91麻豆国产精品久久| 日本不卡免费在线视频| 亚洲国产精品精华液ab| 91精品久久久久久久99蜜桃 | 91精品免费观看| 成人看片黄a免费看在线| 视频一区二区三区中文字幕| 中文字幕精品综合| 欧美一级精品在线| 色综合久久精品| 国产精品夜夜嗨| 免费在线观看日韩欧美| 亚洲色图19p| 国产夜色精品一区二区av| 欧美精品 国产精品| 91亚洲精品乱码久久久久久蜜桃 | 国产精品一区一区三区| 日韩专区欧美专区| 伊人色综合久久天天人手人婷| 日韩视频一区二区三区在线播放| 91久久精品网| av一区二区三区黑人| 国模冰冰炮一区二区| 日本va欧美va精品| 亚洲电影在线免费观看| 亚洲免费伊人电影| 亚洲欧洲精品一区二区精品久久久| 日韩三级在线观看| 91精品国产丝袜白色高跟鞋| 欧美日韩亚洲另类| 91久久精品一区二区三区| 一本久道久久综合中文字幕| 国产精品一区在线观看乱码| 国产伦精品一区二区三区免费 | 99久久精品99国产精品| 国产ts人妖一区二区| 国产精品亚洲第一区在线暖暖韩国 | 成人性生交大合| 成人精品亚洲人成在线| 成人午夜在线免费| 成人高清视频免费观看| 成人avav影音| 色成人在线视频| 欧美日韩和欧美的一区二区| 欧美丰满一区二区免费视频| 欧美老肥妇做.爰bbww视频| 欧美日韩不卡一区二区| 久久久欧美精品sm网站| 91丨九色丨尤物| 日本韩国欧美一区二区三区| 色噜噜狠狠色综合欧洲selulu| 在线观看不卡一区| 在线不卡免费av| 久久嫩草精品久久久久| 国产婷婷一区二区| 亚洲人成网站影音先锋播放| 亚洲成人综合视频| 美脚の诱脚舐め脚责91| 国产精品1区2区3区在线观看| 国产福利一区在线观看| 色先锋资源久久综合| 538在线一区二区精品国产| 精品嫩草影院久久| 亚洲天天做日日做天天谢日日欢| 亚州成人在线电影| 国产另类ts人妖一区二区| va亚洲va日韩不卡在线观看| 一本一道综合狠狠老| 欧美一级欧美三级在线观看| 久久美女艺术照精彩视频福利播放 | 在线观看国产一区二区| 91精品国产欧美日韩| 日本一区二区在线不卡| 亚洲视频在线观看一区| 日本在线不卡一区| 成人黄色小视频在线观看| 欧美精品1区2区3区| 亚洲国产精品国自产拍av| 午夜精品一区二区三区免费视频| 韩国成人精品a∨在线观看| 在线精品观看国产| 久久久噜噜噜久久中文字幕色伊伊| 亚洲男同性视频| 国产精品一区在线| 欧美二区在线观看| 亚洲色图另类专区| 成人午夜碰碰视频| 精品国产一区二区精华| 亚洲成人动漫一区|