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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? marsfunc.h

?? GPU實現(xiàn)的MapReduce framework,對于學(xué)習(xí)并行編程和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__

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日韩av资源站| 成人av资源下载| 欧美视频中文字幕| 亚洲欧美二区三区| 91天堂素人约啪| 国产精品国产自产拍高清av王其| 国产成人精品免费看| 精品国产一区二区三区久久久蜜月 | 国产不卡视频一区二区三区| 欧美一区二区在线视频| 丝袜亚洲另类欧美综合| 欧美一区二区三区四区五区 | 日韩福利视频网| 欧美剧情电影在线观看完整版免费励志电影 | 波多野结衣中文字幕一区二区三区 | 看电视剧不卡顿的网站| 91精品婷婷国产综合久久性色| 一区二区三区四区在线播放| 欧美在线观看视频一区二区三区 | 中文天堂在线一区| 北条麻妃一区二区三区| 亚洲美女偷拍久久| 制服丝袜日韩国产| 国产一区二区日韩精品| 国产蜜臀av在线一区二区三区| av亚洲精华国产精华精华| 亚洲欧美一区二区视频| 欧美日韩一区二区三区视频| 麻豆freexxxx性91精品| 久久精品水蜜桃av综合天堂| 91在线免费看| 婷婷久久综合九色综合绿巨人 | 国产精品嫩草影院av蜜臀| 99久久99久久精品国产片果冻| 亚洲激情中文1区| 在线观看av不卡| 久久激五月天综合精品| 国产日本欧美一区二区| 91亚洲永久精品| 肉色丝袜一区二区| 久久久精品tv| 在线观看欧美黄色| 国产精品综合网| 亚洲国产视频一区二区| 欧美放荡的少妇| 岛国精品在线观看| 午夜免费欧美电影| 国产精品传媒入口麻豆| 91精品国产福利| 99精品视频一区二区三区| 日韩精品视频网站| 亚洲欧美综合网| 欧美电影免费观看高清完整版在| 99精品在线观看视频| 日本美女一区二区| 亚洲精品国产视频| 国产拍揄自揄精品视频麻豆| 欧美日韩你懂的| 在线精品视频免费播放| 色综合久久88色综合天天| 春色校园综合激情亚洲| 国产成人一区二区精品非洲| 精品一区二区三区蜜桃| 日韩电影在线观看一区| 亚洲成人激情av| 亚洲1区2区3区视频| 夜夜操天天操亚洲| 亚洲欧美日韩在线| 亚洲色图欧洲色图| 亚洲欧美日韩一区二区| 亚洲欧洲国产专区| 亚洲免费观看在线视频| 亚洲欧洲精品一区二区精品久久久| 欧美高清在线一区| 中文一区一区三区高中清不卡| 欧美国产一区二区| 日本一区二区三级电影在线观看| 26uuu国产日韩综合| 久久免费国产精品| 国产日产亚洲精品系列| 欧美国产精品久久| 亚洲毛片av在线| 亚洲午夜久久久久久久久电影网| 亚洲成人午夜电影| 免费国产亚洲视频| 国产一区二区三区四区在线观看| 国内精品国产成人| 国产成人欧美日韩在线电影| 波多野结衣中文字幕一区二区三区| 97久久超碰精品国产| 日本高清不卡aⅴ免费网站| 欧美优质美女网站| 在线播放国产精品二区一二区四区 | 欧美一卡二卡在线观看| 久久亚洲私人国产精品va媚药| 久久久高清一区二区三区| 国产精品久线在线观看| 一区二区三区四区精品在线视频| 午夜av一区二区| 国产在线国偷精品免费看| www.av亚洲| 欧美精品一卡两卡| 国产三级欧美三级日产三级99 | 婷婷中文字幕一区三区| 极品少妇xxxx精品少妇| 成人app网站| 欧美精品日日鲁夜夜添| 国产午夜精品一区二区三区嫩草| 亚洲欧美在线视频观看| 日韩电影在线免费看| 成人综合婷婷国产精品久久蜜臀| 一本色道久久综合亚洲精品按摩| 欧美一区二区三区男人的天堂| 国产亚洲成av人在线观看导航| 亚洲欧美视频在线观看视频| 裸体一区二区三区| 波多野结衣亚洲一区| 在线不卡一区二区| 亚洲欧洲美洲综合色网| 美女看a上一区| 色综合久久久久| 精品电影一区二区| 亚洲综合在线五月| 国产传媒一区在线| 欧美精品1区2区| 亚洲精选免费视频| 国产一区二区三区在线观看免费视频 | 一区二区欧美国产| 国产酒店精品激情| 91麻豆精品国产91久久久久 | 日韩高清在线不卡| av在线免费不卡| 日韩欧美精品三级| 亚洲与欧洲av电影| a美女胸又www黄视频久久| 精品国产露脸精彩对白| 亚洲高清一区二区三区| 91蝌蚪porny成人天涯| 久久精品网站免费观看| 久久精品二区亚洲w码| 欧美精品久久99| 亚洲午夜精品在线| 色婷婷久久一区二区三区麻豆| 国产日韩欧美亚洲| 国内成人免费视频| 欧美一区二区三区在线观看| 亚洲综合男人的天堂| 99国产精品99久久久久久| 国产欧美一区二区精品婷婷| 激情国产一区二区 | 欧美变态口味重另类| 视频在线观看91| 欧美亚男人的天堂| 亚洲综合男人的天堂| 在线观看免费亚洲| 亚洲麻豆国产自偷在线| 91丨porny丨最新| 日韩美女啊v在线免费观看| 99在线视频精品| 国产精品初高中害羞小美女文| 成人免费电影视频| 国产精品女同一区二区三区| 国产夫妻精品视频| 国产日产亚洲精品系列| 成人午夜激情片| 国产精品女同一区二区三区| 成人h精品动漫一区二区三区| 国产欧美精品区一区二区三区 | 自拍视频在线观看一区二区| 成人av资源在线观看| 亚洲日本一区二区| 欧美怡红院视频| 日本不卡高清视频| 2023国产精品| www.成人网.com| 亚洲一卡二卡三卡四卡五卡| 欧美区一区二区三区| 日产国产欧美视频一区精品| 欧美电影免费观看高清完整版| 国产一区二区三区免费看| 日本一区二区三区高清不卡| 99精品国产99久久久久久白柏 | 秋霞国产午夜精品免费视频| 日韩精品专区在线影院重磅| 国产一区二区成人久久免费影院 | 成人一区在线看| 亚洲蜜臀av乱码久久精品蜜桃| 欧美性生活一区| 人人狠狠综合久久亚洲| 久久久精品免费免费| 91小视频免费观看| 午夜精品福利视频网站| www国产成人免费观看视频 深夜成人网| 成人精品视频一区二区三区尤物| 一级精品视频在线观看宜春院 | 久久久蜜桃精品| 一道本成人在线| 蜜臀a∨国产成人精品| 国产精品丝袜黑色高跟| 欧美三级中文字幕在线观看|