亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区精品| 国产一区二区导航在线播放| 在线看不卡av| 亚洲精品成人精品456| 九色porny丨国产精品| 欧美在线制服丝袜| 亚洲欧美日韩在线播放| 国产成都精品91一区二区三| 欧美一区二区三区四区五区| 亚洲宅男天堂在线观看无病毒| 国产.欧美.日韩| 国产欧美一区二区在线| 久久99精品久久久久久久久久久久| 欧美网站一区二区| 亚洲永久精品国产| 欧美在线不卡一区| 亚洲综合成人网| 91福利在线播放| 亚洲国产裸拍裸体视频在线观看乱了| 大桥未久av一区二区三区中文| 久久久久久亚洲综合影院红桃| 久久精工是国产品牌吗| 欧美成人aa大片| 久久aⅴ国产欧美74aaa| 日韩欧美电影一区| 国产综合色产在线精品| 精品成a人在线观看| 韩国欧美一区二区| 国产日韩欧美不卡| 99re亚洲国产精品| 亚洲伦理在线免费看| 色视频成人在线观看免| 亚洲一区二区三区四区在线 | 欧美大片在线观看| 理论电影国产精品| 久久综合狠狠综合久久激情| 精品影视av免费| 欧美高清在线一区| 91小视频在线| 首页欧美精品中文字幕| 精品美女被调教视频大全网站| 国产在线播精品第三| 欧美国产综合色视频| 99久久精品99国产精品| 亚洲国产精品一区二区www在线 | 精品欧美乱码久久久久久 | 色欧美日韩亚洲| 天天操天天色综合| 日韩一卡二卡三卡四卡| 国产成人在线色| 一区二区成人在线| 日韩精品在线看片z| 成人免费福利片| 亚洲成人免费观看| 精品国产一区二区三区av性色| 成人手机电影网| 婷婷综合在线观看| 国产日产精品一区| 精品视频在线免费看| 国产乱子伦一区二区三区国色天香| 国产日韩精品一区二区三区在线| 色香蕉久久蜜桃| 国模无码大尺度一区二区三区| 国产精品久久久久久亚洲伦| 欧美日韩和欧美的一区二区| 国产在线观看免费一区| 一区二区三区在线免费| 精品三级av在线| 在线免费观看日本一区| 国产精品 日产精品 欧美精品| 一区二区三区.www| 国产亚洲精品bt天堂精选| 欧美日韩极品在线观看一区| 国产91丝袜在线18| 奇米精品一区二区三区在线观看一 | 国产乱理伦片在线观看夜一区| 亚洲欧美在线视频| 精品欧美一区二区久久| 欧美图区在线视频| 成人app软件下载大全免费| 免费成人av在线| 亚洲一区二区三区四区在线免费观看 | 亚洲黄色片在线观看| 国产亚洲综合av| 欧美一区二区在线视频| 色悠久久久久综合欧美99| 国产毛片精品国产一区二区三区| 亚洲一区二区影院| 国产精品成人免费在线| 久久一夜天堂av一区二区三区 | 欧美精品一区二区在线播放| 欧美体内she精高潮| 91视频www| 波多野结衣中文一区| 国产在线精品一区二区夜色| 婷婷开心激情综合| 亚洲国产综合人成综合网站| 亚洲日本在线天堂| 综合电影一区二区三区| 国产精品人妖ts系列视频| 久久精品视频在线免费观看| 欧美大片在线观看| 欧美精品一区男女天堂| 26uuu亚洲| 久久精品一级爱片| 国产欧美一区二区精品婷婷| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲黄网站在线观看| 亚洲精品国产无天堂网2021 | 亚洲欧洲精品成人久久奇米网| 国产女人18水真多18精品一级做 | 午夜电影一区二区| 婷婷开心久久网| 六月丁香婷婷久久| 国精产品一区一区三区mba桃花| 蜜桃视频一区二区| 国产美女一区二区三区| 国产成人午夜视频| 高清国产一区二区| 91在线播放网址| 欧美美女视频在线观看| 欧美一区二区三区在线观看| 欧美大片国产精品| 欧美国产精品v| 亚洲综合自拍偷拍| 三级一区在线视频先锋| 精品在线你懂的| 波多野结衣中文字幕一区二区三区| 93久久精品日日躁夜夜躁欧美| 一本在线高清不卡dvd| 欧美二区三区的天堂| 亚洲精品一区二区三区福利| 欧美激情艳妇裸体舞| 亚洲激情自拍视频| 青青草91视频| av不卡一区二区三区| 欧美三级视频在线| 精品电影一区二区| 亚洲精品中文在线| 久久超碰97中文字幕| www.在线欧美| 日韩视频中午一区| 亚洲三级在线观看| 久久99热国产| 在线精品视频免费观看| 久久久三级国产网站| 亚洲婷婷国产精品电影人久久| 日韩精品1区2区3区| av爱爱亚洲一区| 日韩欧美三级在线| 亚洲精品综合在线| 国产激情一区二区三区四区 | 亚洲欧洲精品一区二区三区| 日韩国产精品久久久| 成人毛片视频在线观看| 欧美夫妻性生活| 亚洲精品亚洲人成人网 | 欧美日韩一级二级三级| 日本一区二区久久| 麻豆免费看一区二区三区| 91在线精品一区二区三区| 精品国产制服丝袜高跟| 午夜电影网亚洲视频| 91免费观看在线| 国产精品色哟哟| 国产自产高清不卡| 日韩视频免费观看高清完整版 | 欧美日韩你懂的| 亚洲欧美视频在线观看| 国产成人a级片| 久久久久久夜精品精品免费| 日韩黄色免费电影| 欧美日韩中字一区| 依依成人综合视频| 91免费观看在线| 日韩一区在线看| 成人免费黄色大片| 欧美经典一区二区| 国产不卡高清在线观看视频| 欧美一级日韩不卡播放免费| 一区二区三区精品| 在线看不卡av| 伊人一区二区三区| 色嗨嗨av一区二区三区| 亚洲摸摸操操av| 91女厕偷拍女厕偷拍高清| 国产精品电影院| 91蜜桃在线观看| 亚洲激情图片qvod| 欧美亚洲另类激情小说| 亚洲成人动漫一区| 欧美丰满少妇xxxbbb| 奇米四色…亚洲| 久久亚洲一级片| 国产99久久久国产精品潘金网站|