亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
蓝色福利精品导航| 成人爽a毛片一区二区免费| 国产性天天综合网| 在线观看视频欧美| 丁香啪啪综合成人亚洲小说| 日日摸夜夜添夜夜添精品视频 | 一区二区三区资源| 久久综合色之久久综合| 欧洲一区二区av| 高清日韩电视剧大全免费| 蜜臀a∨国产成人精品| 亚洲无线码一区二区三区| 国产午夜久久久久| 日韩一区二区三区电影在线观看 | 精品动漫一区二区三区在线观看| 91丨porny丨在线| 国产一区二区精品久久| 日韩avvvv在线播放| 亚洲欧美二区三区| 国产精品女同互慰在线看| 精品成a人在线观看| 日韩久久精品一区| 56国语精品自产拍在线观看| 日本高清不卡在线观看| a亚洲天堂av| 不卡影院免费观看| 国产69精品久久久久毛片 | 日本韩国视频一区二区| www.欧美日韩国产在线| 国产91丝袜在线观看| 国产精品一级二级三级| 激情综合色综合久久| 久久国内精品视频| 久久激情五月激情| 美腿丝袜一区二区三区| 另类欧美日韩国产在线| 毛片一区二区三区| 国产中文字幕一区| 国产黄色精品网站| 国产成a人亚洲| 国产suv一区二区三区88区| 国产精品亚洲一区二区三区妖精 | 蜜臂av日日欢夜夜爽一区| 日本欧美韩国一区三区| 蜜臀久久99精品久久久久宅男| 亚洲国产乱码最新视频| 亚洲成av人片| 日韩av在线发布| 久久国产精品99久久久久久老狼| 免费欧美在线视频| 国产一区二三区| 国产成人av电影在线播放| bt欧美亚洲午夜电影天堂| 99re热视频这里只精品| 在线一区二区三区做爰视频网站| 欧美日韩一区成人| 日韩一区二区三区电影 | 亚洲欧洲成人自拍| 一区二区三区.www| 日韩精品成人一区二区三区| 久久爱www久久做| 国产一区二区电影| 99精品国产热久久91蜜凸| 欧美怡红院视频| 69堂精品视频| 久久久亚洲精华液精华液精华液 | 中文字幕av免费专区久久| 亚洲欧美在线高清| 亚洲v精品v日韩v欧美v专区| 免费一级片91| jizz一区二区| 欧美日韩成人综合在线一区二区| 欧美一区二区在线免费播放| 国产亚洲一区二区在线观看| 亚洲特黄一级片| 国产精品主播直播| 成人av电影免费在线播放| 欧美高清视频www夜色资源网| 欧美tickling挠脚心丨vk| 国产精品久久一级| 午夜精彩视频在线观看不卡| 国产乱国产乱300精品| 在线这里只有精品| 久久亚洲精品国产精品紫薇| 亚洲日本在线a| 精品一区二区三区免费毛片爱 | 丁香六月久久综合狠狠色| 欧美视频一二三区| 久久精品一二三| 亚洲风情在线资源站| 国产成人亚洲综合色影视| 欧美艳星brazzers| 欧美国产欧美综合| 午夜精品福利一区二区三区蜜桃| va亚洲va日韩不卡在线观看| 日韩无一区二区| 一区二区三区欧美在线观看| 国产精品99久久久久久有的能看| 欧美日韩五月天| 国产精品无人区| 免费精品99久久国产综合精品| 成人av集中营| 久久网这里都是精品| 亚洲.国产.中文慕字在线| 99久久久久免费精品国产| 精品日韩一区二区| 五月激情丁香一区二区三区| 99久久国产综合精品麻豆| 2023国产精品自拍| 日韩国产在线一| 91久久免费观看| 国产精品天美传媒| 国产一区日韩二区欧美三区| 在线不卡a资源高清| 亚洲同性同志一二三专区| 国内精品久久久久影院一蜜桃| 欧美日韩一区不卡| 一卡二卡欧美日韩| 99精品久久只有精品| 欧美韩国日本不卡| 国产精品中文字幕日韩精品| 欧美放荡的少妇| 亚洲成人免费视| 欧美三级视频在线| 伊人色综合久久天天人手人婷| 成人激情av网| 国产性天天综合网| 国产91色综合久久免费分享| 久久婷婷国产综合国色天香| 日本不卡的三区四区五区| 欧美一个色资源| 免费精品视频在线| 精品国产一区二区三区久久久蜜月 | 蜜臀a∨国产成人精品| 欧美日韩免费一区二区三区| 亚洲综合久久久| 91久久精品国产91性色tv| 亚洲精品视频自拍| 在线观看网站黄不卡| 亚洲一区二区精品3399| 欧美日韩久久一区| 色综合久久综合| 亚洲免费资源在线播放| 色8久久精品久久久久久蜜| 一区二区三区中文字幕精品精品| 欧美亚洲日本一区| 日本中文字幕一区二区有限公司| 7777精品伊人久久久大香线蕉 | 成人午夜激情在线| 自拍偷拍亚洲欧美日韩| 91搞黄在线观看| 亚洲bt欧美bt精品| 日韩免费视频一区二区| 国产精品1024| 日韩理论电影院| 欧美三级电影精品| 蜜臀av一区二区在线观看| 久久久五月婷婷| 91在线视频网址| 午夜激情久久久| 久久免费偷拍视频| 99久久99久久精品国产片果冻| 亚洲一区二区五区| 日韩亚洲欧美在线| 成人免费av网站| 亚洲国产一区在线观看| 91精品国产入口| 福利一区二区在线| 亚洲在线中文字幕| 精品欧美乱码久久久久久| 成人教育av在线| 天天亚洲美女在线视频| 久久午夜羞羞影院免费观看| 成人av网站在线| 五月激情综合婷婷| 中文字幕精品三区| 欧美久久久久免费| 成人在线一区二区三区| 亚洲国产aⅴ天堂久久| 337p粉嫩大胆色噜噜噜噜亚洲| 91无套直看片红桃| 九九国产精品视频| 亚洲蜜臀av乱码久久精品蜜桃| 91麻豆精品91久久久久同性| 风间由美一区二区av101| 亚洲成av人综合在线观看| 国产三级精品视频| 欧美精品久久99| 成人h动漫精品一区二| 日日夜夜精品免费视频| 成人免费在线观看入口| 欧美一级电影网站| 在线观看日产精品| 国产精品亚洲成人| 午夜私人影院久久久久| 中文字幕在线不卡一区| 欧美成人综合网站| 欧美在线影院一区二区| 成人免费视频一区| 精品一区二区三区在线观看国产|