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

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

?? marsfunc.h

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

//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__

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合在线网站| 欧美久久久久久蜜桃| 日本一区中文字幕| 欧美国产一区二区| 欧美区在线观看| zzijzzij亚洲日本少妇熟睡| 青青国产91久久久久久| 亚洲激情自拍偷拍| 国产视频一区二区三区在线观看| 欧美日产在线观看| 91麻豆123| 成人综合激情网| 麻豆精品新av中文字幕| 亚洲国产日韩精品| 亚洲日本青草视频在线怡红院| 精品久久久久久久久久久久久久久久久 | 欧美一区二区在线看| 99免费精品视频| 国产成都精品91一区二区三| 青草av.久久免费一区| 亚洲午夜在线观看视频在线| 1024成人网| 日本一区二区三区四区在线视频| 欧美成人官网二区| 日韩一区二区免费视频| 欧美色网站导航| 色88888久久久久久影院野外| 成人高清av在线| 国产精品亚洲午夜一区二区三区 | 成人性视频网站| 国产精品1区2区3区在线观看| 蜜桃传媒麻豆第一区在线观看| 亚洲国产综合色| 一级女性全黄久久生活片免费| 亚洲欧美自拍偷拍| 一色桃子久久精品亚洲| 中文字幕中文在线不卡住| 国产精品久久久久久亚洲毛片 | 亚洲精品视频一区二区| 《视频一区视频二区| 中国色在线观看另类| 国产免费成人在线视频| 国产欧美一区在线| 国产精品久久久久毛片软件| 国产精品久久久久久久第一福利| 国产精品久久久久久亚洲毛片 | 99久久伊人久久99| 91一区二区三区在线观看| 91免费版在线看| 欧美自拍丝袜亚洲| 欧美日韩不卡一区| 欧美电影免费观看高清完整版在线观看| 欧美一区二区三区爱爱| 精品国产伦理网| 国产欧美日韩精品一区| 日本一区二区免费在线| 最新日韩av在线| 亚洲午夜影视影院在线观看| 性久久久久久久久| 美国十次综合导航| 岛国精品一区二区| 91亚洲资源网| 91麻豆精品久久久久蜜臀| 欧美第一区第二区| 中文字幕成人av| 亚洲一区二区三区三| 美女国产一区二区| 岛国av在线一区| 欧美在线观看视频一区二区三区| 9191成人精品久久| 国产视频一区二区三区在线观看| 亚洲精品欧美综合四区| 日本欧美加勒比视频| 国产黑丝在线一区二区三区| 一本久道久久综合中文字幕| 91精品国产综合久久福利 | 国产精品系列在线| 亚洲成av人**亚洲成av**| 久久国产婷婷国产香蕉| 成人永久aaa| 欧美日韩国产在线观看| 久久综合狠狠综合久久综合88| 中文字幕日韩一区| 午夜激情一区二区三区| 国产一区二区在线免费观看| 91在线精品一区二区| 日韩一二三四区| 亚洲视频在线观看一区| 老司机精品视频在线| 91尤物视频在线观看| 欧美电影免费观看高清完整版在线观看| 国产精品美女久久久久久久久久久| 亚洲国产成人tv| 盗摄精品av一区二区三区| 欧美久久婷婷综合色| 亚洲欧洲精品一区二区三区不卡| 日韩成人精品在线| 色视频一区二区| 国产欧美日韩精品a在线观看| 午夜欧美在线一二页| eeuss鲁片一区二区三区| 日韩免费看的电影| 亚洲激情第一区| 成人丝袜视频网| 日韩美女一区二区三区四区| 亚洲视频综合在线| 国产成都精品91一区二区三| 日韩欧美一区电影| 亚洲bt欧美bt精品777| 99免费精品视频| 亚洲国产精品av| 极品少妇xxxx精品少妇| 欧美日韩国产一级二级| 国产精品超碰97尤物18| 国产又黄又大久久| 欧美r级电影在线观看| 丝袜美腿亚洲色图| 欧美三级视频在线观看| 一区二区三区在线观看欧美| 成人免费的视频| 国产女主播视频一区二区| 老司机精品视频导航| 欧美一区二区三区不卡| 婷婷综合五月天| 欧美午夜寂寞影院| 亚洲免费av高清| 91亚洲国产成人精品一区二区三| 国产欧美一区二区精品仙草咪| 国产原创一区二区| 国产亚洲欧洲997久久综合| 九一久久久久久| 精品国产一区二区精华| 国产专区欧美精品| 久久亚洲一级片| 一区二区三区在线看| 91豆麻精品91久久久久久| 亚洲免费高清视频在线| 一本色道久久综合亚洲91| 亚洲精品高清在线| 欧美视频中文字幕| 亚洲成人免费看| 91精品国产欧美日韩| 久久爱另类一区二区小说| 精品卡一卡二卡三卡四在线| 国产一区在线观看麻豆| 国产亚洲1区2区3区| av网站免费线看精品| 亚洲欧美国产毛片在线| 欧美日韩一区二区欧美激情 | 久久丁香综合五月国产三级网站| 日韩精品一区二区三区四区| 国产一区在线观看麻豆| 国产精品入口麻豆原神| 色综合天天性综合| 亚洲a一区二区| 精品久久一区二区三区| 国产成人综合亚洲91猫咪| 国产精品久久久久一区二区三区| 色欧美片视频在线观看在线视频| 亚洲福利一区二区三区| 精品美女在线观看| 成人v精品蜜桃久久一区| 亚洲一区二区三区四区的| 日韩一卡二卡三卡国产欧美| 国产激情偷乱视频一区二区三区| 亚洲日本成人在线观看| 欧美日韩二区三区| 国产精品一二一区| 亚洲黄一区二区三区| 欧美一区二区三区免费| 成人免费视频app| 亚洲大片免费看| 国产午夜久久久久| 欧美系列亚洲系列| 极品美女销魂一区二区三区免费| 中文字幕在线一区二区三区| 欧美日韩精品免费| 懂色av一区二区三区免费观看| 一区二区成人在线观看| 欧美mv日韩mv亚洲| 欧美亚洲高清一区| 国产一区二区三区av电影| 亚洲美女屁股眼交3| 日韩精品一区二区三区在线观看 | 国产乱码精品1区2区3区| 一色桃子久久精品亚洲| 欧美一区二区三区四区高清| 成人永久aaa| 麻豆精品国产传媒mv男同| 亚洲三级小视频| 精品99久久久久久| 欧美日韩激情一区二区三区| 风流少妇一区二区| 免播放器亚洲一区| 一区二区在线免费| 国产日韩欧美精品一区| 在线不卡中文字幕| 一本色道综合亚洲| 国产**成人网毛片九色| 免费成人在线观看|