亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区不卡| 欧美成人综合网站| 亚洲色图清纯唯美| 国产精品亚洲第一区在线暖暖韩国| 91在线观看污| 国产欧美视频一区二区三区| 日本中文字幕一区| 色婷婷av久久久久久久| 中文字幕精品一区二区精品绿巨人| 日韩在线卡一卡二| 一本到高清视频免费精品| 国产日韩欧美在线一区| 玖玖九九国产精品| 69久久99精品久久久久婷婷| 亚洲精品成a人| jizz一区二区| 欧美极品aⅴ影院| 久久69国产一区二区蜜臀| 欧美电影在线免费观看| 一区二区在线免费| 色综合一区二区| 国产精品久久久一本精品| 丁香一区二区三区| 久久久夜色精品亚洲| 精品一二三四区| 制服丝袜中文字幕一区| 午夜一区二区三区在线观看| 色狠狠色噜噜噜综合网| 成人欧美一区二区三区在线播放| 成人毛片在线观看| 国产欧美日韩精品在线| 国产乱码精品1区2区3区| 久久午夜电影网| 国产精品 日产精品 欧美精品| 精品少妇一区二区三区在线播放 | 国产一区在线精品| 久久久一区二区三区捆绑**| 国产精品一区一区| 国产亚洲一区二区三区四区 | 精品欧美一区二区久久| 久久精品噜噜噜成人av农村| 欧美一二三区在线| 精品一区二区三区免费观看| 欧美tickling挠脚心丨vk| 国产在线精品国自产拍免费| 久久精品免视看| 99在线精品免费| 亚洲精品成人a在线观看| 69av一区二区三区| 玖玖九九国产精品| 国产精品卡一卡二| 欧美午夜精品久久久| 青青草原综合久久大伊人精品 | 国产精品成人网| 欧美性做爰猛烈叫床潮| 卡一卡二国产精品| 欧美国产1区2区| 欧美亚洲国产bt| 国内成+人亚洲+欧美+综合在线| 欧美国产综合色视频| 色综合久久久久综合| 免费欧美高清视频| 欧美国产一区在线| 欧美日韩精品高清| 国产一区二区三区四区五区美女 | 婷婷中文字幕一区三区| 精品国产乱码久久久久久1区2区| 99久久99久久免费精品蜜臀| 三级欧美韩日大片在线看| 久久精品夜夜夜夜久久| 一道本成人在线| 久久成人免费网站| 中文字幕亚洲区| 日韩美女视频一区二区在线观看| 成人三级在线视频| 日韩精品一区第一页| 中文字幕一区二区三| 国产精品久久久久久一区二区三区 | 日产精品久久久久久久性色| 国产免费成人在线视频| 欧美日韩午夜在线视频| 国产91丝袜在线18| 日韩av中文在线观看| 亚洲天堂a在线| 久久久久97国产精华液好用吗| 欧洲一区二区三区在线| 成人激情小说网站| 激情图区综合网| 亚洲国产一区二区三区青草影视| 国产午夜精品在线观看| 在线91免费看| 91久久精品一区二区三区| 国产超碰在线一区| 久久99精品国产麻豆婷婷| 五月婷婷综合在线| 一区二区在线观看av| 国产精品国产三级国产有无不卡 | 懂色av中文一区二区三区| 免费成人在线观看| 同产精品九九九| 一区二区高清免费观看影视大全| 国产日本一区二区| 久久综合精品国产一区二区三区 | 欧美亚洲一区二区在线| av一区二区不卡| 不卡在线视频中文字幕| 国产高清在线观看免费不卡| 日本一不卡视频| 首页国产欧美日韩丝袜| 亚洲午夜一区二区三区| 亚洲一区二区欧美日韩| 一区二区三区在线观看国产| 亚洲欧美视频在线观看视频| 中文字幕制服丝袜一区二区三区| 中文字幕免费不卡| 国产精品久久久久天堂| 亚洲日本青草视频在线怡红院| 综合在线观看色| 亚洲人亚洲人成电影网站色| 亚洲免费视频成人| 亚洲午夜精品久久久久久久久| 亚洲国产成人91porn| 午夜视频一区二区三区| 石原莉奈一区二区三区在线观看| 亚洲一区二区综合| 午夜av电影一区| 久久草av在线| 国产69精品久久久久毛片| 91热门视频在线观看| 在线影院国内精品| 欧美剧情片在线观看| 欧美哺乳videos| 国产精品色噜噜| 亚洲一级不卡视频| 另类调教123区| 粉嫩欧美一区二区三区高清影视 | 一区二区成人在线视频 | 一区二区三区毛片| 美女www一区二区| 国产乱对白刺激视频不卡| 97久久人人超碰| 欧美日韩成人综合天天影院| 日韩免费高清电影| 亚洲欧美怡红院| 日本欧美大码aⅴ在线播放| 国产在线一区二区综合免费视频| 成人午夜电影久久影院| 欧美在线不卡视频| 精品久久久久久最新网址| 亚洲婷婷在线视频| 久久激情五月婷婷| 91在线视频播放地址| 欧美一级片在线观看| 中文成人综合网| 人人精品人人爱| 99免费精品在线观看| 91精品国产综合久久精品麻豆| 精品国产欧美一区二区| 亚洲黄色av一区| 国产精品一区一区| 欧美精品久久一区| 中文字幕免费观看一区| 麻豆91在线播放| 在线观看亚洲专区| 国产婷婷色一区二区三区四区| 亚洲一区在线电影| 不卡av在线免费观看| 欧美成人伊人久久综合网| 亚洲一区中文在线| 9i看片成人免费高清| 久久综合久久综合久久综合| 首页欧美精品中文字幕| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品卡一卡二| 国产一区二区看久久| 4438x亚洲最大成人网| 一区二区三区中文字幕| 成人性色生活片免费看爆迷你毛片| 欧美卡1卡2卡| 亚洲影视在线观看| 在线免费观看不卡av| 中文字幕一区视频| 国产999精品久久久久久| 久久综合九色综合欧美亚洲| 美女国产一区二区三区| 91精品国产黑色紧身裤美女| 亚洲h在线观看| 欧美午夜精品久久久| 一区二区日韩av| 91久久精品网| 伊人夜夜躁av伊人久久| 色婷婷综合激情| 亚洲一区二区四区蜜桃| 在线观看av一区| 天天综合日日夜夜精品| 欧美剧在线免费观看网站| 午夜视频一区在线观看|