Page 17 - profile-ok
P. 17

研究群   |   Research Laboratories











 Computer System Laboratory









 Research Faculty  Group Profile


 Pen-Chung	Yew  The	Computer	System	Lab	focuses	its	research	primarily	on	multicore	systems	and	system	sup-  ming	on	such	multicore	platforms.	Tools	to	detect	race	conditions,	  example,	the	system	may	have	to	keep	an	avatar’s	states	for	a	few
 Distinguished	Research	Fellow	  port	for	cloud	computing	and	its	applications.	Multicores	and	cloud	computing	are	two	emerging	  deadlocks,	and	other	common	bugs	in	parallel	programs	are	our	ac-  hours	or	ever	longer	once	the	avatar	enters	a	virtual	world	hosted
 Computer	Science	,	University	of	Illinois	at	Urbana-  technologies	that	could	dominate	the	computing	landscape	in	the	foreseeable	future.	For	mul-  tive	research	areas.	  by	the	system.	Furthermore,	much	interaction	may	occur	at	any	time
 Champaign
 ticore	systems,	our	current	research	efforts	involve	(1)	system	design	and	its	design	support	for	  between	any	pair	of	avatars	or	among	a	group	of	avatars.	Therefore,
 Sheng-Wei	Chen  multicore	systems;	(2)	parallel	programming	support	such	as	debugger,	programming	models	and	  Various	 domain-specific	 parallel	 programming	 models	 have	 been	  in	addition	to	the	state	size,	the	real-time	support	for	interactions	also
 Assistant	Research	Fellow  their	compilation	techniques;	(3)	system	virtualization	support.	For	cloud	computing	and	its	ap-  proposed	 to	 help	 application	 programmers	 migrate	 their	 existing	  sets	a	limit	on	the	scalability	of	a	NVE	system.
 Electrical	Engineering	,	National	Taiwan	University	  applications	or	write	new	code	for	new	multicore	platforms.	Recent
 plications,	we	focus	on	(1)	system	support	for	large-scale	highly-interactive	internet	applications
 PeiZong	Lee  and	services	on	clouds,	and	(2)	adaptive	data	and	storage	management	in	distributed	file	systems	  successful	examples,	such	as	CUDA	from	Nvidia	and	MapReduce	from	  It	is	not	feasible	for	a	physical	server	to	support	millions	of	avatars	si-
                                                                     multaneously.	The	NVE	needs	to	be	partitioned	over	multiple	servers.
                Google,	have	been	extensively	used	in	computer	graphics	and	search
 Research	Fellow	  for	cloud	servers.
 Computer	Science	,	New	York	University		  engines.	They	are	also	being	explored	in	other	application	domains.	  However,	the	partitioning	of	a	NVE	is	a	difficult	problem	because	1)
 1. System Design and Design Support for Multicore Systems           the	avatars	in	a	NVE	are	not	uniformly	distributed;	and	2)	the	distribu-
 Chien-Min	Wang  Our	 research	 efforts	 include	 exploring	 new	 debugging	 techniques	  tion	of	the	avatars	may	change	over	time.	Virtualization	technology
 Associate	Research	Fellow  Our	research	focuses	on	the	architecture	and	system	support	needed	for	various	new	system	  for	more	efficient	and	effective	debugging	support	for	parallel	ap-
 Electrical	Engineering	,	National	Taiwan	University	                can	help	solve	the	NVE	partitioning	and	load	balancing	problems	in
 features,	such	as	virtualization	and	cloud	computing,	as	well	as	emerging	new	applications	  plications.	This	would	allow	application	programmers	to	contribute	  a	much	simpler	and	more	elegant	way.	However,	this	process	does
 Jan-Jan	Wu  such	 as	 those	 on	 highly-interactive	 and	 low-power	 client-side	 mobile	 devices.	 Frequently,	  domain	knowledge	that	could	guide	compilers	to	generate	higher	  involve	new	challenges,	such	as	the	management	and	migration	of
 Associate	Research	Fellow	  heterogeneous	multiple	cores	are	needed	for	application-specific	support.		Examples	include	  performance	parallel	codes	on	multicores,	as	well	as	on	systems	with	  VMs	 and	 the	 communication	 overhead	 between	VMs	 on	 different
 Computer	Science	,	Yale	University	  computer	graphics,	security,	and	signal	and	image	processing.	  general-purpose	graphic	processing	units	(GPGPUs)  physical	servers.
 Designing	such	multicore	systems	requires	extensive	simulations	at	the	system-level	before	  3. System Support for Virtualization  Our	 research	 focuses	 on	 resource-efficient	 cloud	 middleware	 for
 hardware	design	can	begin.		Software	development	also	needs	to	proceed	on	simulators	at	the	  System	virtualization	is	a	very	important	technology	for	multicores	  highly-interactive	application	services,	with	the	goals	of	supporting
 same	time	hardware	is	being	designed	and	implemented,	in	order	to	shorten	critical	time-to-  massive	multiplayer	NVEs,	improving	efficiency	and	power	usage	on
 market.	Hence,	system	simulations	at	functional	and	cycle-accurate	levels	are	gaining	in	impor-  and	cloud	computing.	It	allows	applications	running	on	such	systems	  servers,	and	guaranteeing	real-time	interactivity.	This	demands	inno-
                to	be	agnostic	about	the	underlying	hardware	platforms.	For	exam-
 tance	when	designing	such	multicore	systems.	However,	such	simulations	are	notoriously	time	  vative	solutions	to	challenging	issues,	such	as	performance	assurance
 consuming	even	for	single-core	systems.	As	multicores	scale	up	to	larger	numbers	of	cores,	  ple,	applications	compiled	for	a	particular	instruction-set	architecture	  and	 fairness	 in	 virtualization,	 power/resource	 management,	 work-
                such	as	Intel’s	x86	running	under	Window	could	be	run	on	a	system
 time	spent	on	simulations	grows	super-linearly.	Speeding	up	these	simulations	will	facilitate	  load	prediction,	fast	live	migration,	failure	handling,	in-memory	data-
 faster	design	time	and	produce	better	system	designs.	  using	the	instruction	set	of	ARM	architecture	under	Linux.	They	also
                need	not	know	how	many	cores	are	available	on	the	host	multicore	  base	design,	and	dynamic	data	partitioning/replication/localization.
 Our	approach	is	to	use	existing	multicore	platforms	to	simulate	new	multicore	designs	by	ex-  systems.	Virtualization	techniques	are	being	used	in	I/O	and	file	sys-
 ploiting	their	inherent	thread-level	parallelism.	To	speed	up	such	simulations,	various	existing	  tems,	high-level	language	virtual	machines,	and	process	virtualiza-
 techniques	for	single	cores	are	extended	to	multicores.		For	example,	we	exploit	similar	pro-  tion.	  5. Adaptive Data and Storage Management in Distrib-
 gram	behavior	in	program	execution	phases.	We	also	integrate	fast	functional	simulations	with	  uted File Systems for Clouds
 detailed	cycle-accurate	simulations,	in	order	to	both	shorten	simulation	times	and	to	obtain	  Our	research	focuses	on	the	core	technologies	that	support	system
                virtualization,		particularly	dynamic	compilation	techniques	for	bina-
 accurate	simulation	results.	                                       Cloud	computing	is	a	new	and	promising	paradigm	in	which	dynami-
                ry	translation	and	binary	optimization	targeting	multicore	systems.	  cally	scalable	and	often	virtualized	resources	are	provided	as	a	serv-
 2. Parallel Programming Support for Multicores  Existing	dynamic	binary	compilation	techniques	are	primarily	for	sin-  ice	over	the	Internet.	It	leverages	networks	and	integrates	distributed
                gle-cores.	We	are	exploring	new	ways	of	extending	these	techniques	  computing	and	storage	resources	as	a	virtual	platform	on	which	users
 Software	applications	are	the	ultimate	determining	factor	for	the	success	of	multicore	tech-  to	multicores.	One	of	our	aims	is	to	take	binary	codes	from	multiple	  can	not	only	access	provided	application	services,	but	also	execute
 nologies.	However,	parallel	applications	are	notoriously	difficult	to	program	on	such	platforms.	  instruction-set	 architectures	 and	 translate	 them	 to	 another	 set	 of	  large-scale	distributed	applications	that	require	significant	amounts
 This	is	because	when	using	such	parallel	programs	it	is	very	difficult	to	achieve	performance	  instruction-set	 architectures	 on	 multicores.	 All	 of	 such	 binary	 ma-  of	computing	and	storage	resources.	In	order	to	help	users	manipu-
 expectations	due	to	many	interacting	factors,	such	as	synchronizations,	resource	conflicts,	and	  nipulations	are	under	one	unified	dynamic	compilation	framework.	  late	massive-scale	data	stored	in	clouds,	the	design	and	implementa-
 long	memory	latency,	to	name	just	a	few.	Thus,	tools	to	support	performance	tuning	and	to	  Furthermore,	this	occurs	at	the	binary-code	level,	instead	of	using	  tion	of	a	global	distributed	file	system	for	cloud	computing	becomes
 understand	the	program’s	behavior	during	its	execution	on	multicores	are	very	useful	to	pro-  high-level	language	virtual	machines	such	as	Java	and	C#.	It	affords	  a	crucial	issue.	The	Google	File	System	(GFS)	is	a	pioneer	in	this	area.
 grammers.	     much	higher	transparency	and	portability	for	existing	binary	codes.
 Parallel	applications	are	also	notoriously	difficult	to	debug	because	of	the	indeterministic	way	  4. Resource-Efficient Cloud Middleware for Highly-In-  While	sharing	many	of	the	same	goals	as	previously	distributed	file
                                                                     systems,	the	design	of	GFS	has	been	driven	by	observations	of	Goog-
 in	 which	 multiple	 threads	 on	 multiple	 cores	 interact,	 synchronize	 and	 contend	 for	 various	  teractive Application Services  le’s	application	workloads	and	technological	environment.	It	reflects
 shared	resources.	Efficient	and	effective	debugging	tools	are	crucial	for	supporting	program-  a	marked	departure	from	earlier	file	system	assumptions.	The	success
                Existing	cloud	technologies	and	infrastructures	are	quite	successful	  of	GFS	motivates	us	to	explore	adaptive	data	and	storage	manage-
                for	stateless	application	services	that	treat	each	user	request	as	an	  ment	 for	 different	 workloads	 and	 technological	 environments.	We
                independent	transaction	unrelated	to	any	previous	request.	Process	  believe	that	both	performance	and	efficiency	will	improve	if	data	and
                virtualization,	in	particular	high-level	language	virtual	machines,	is	  storage	management	strategies	can	adapt	to	these	different	work-
                used	quite	extensively	in	cloud	computing.	In	contrary	to	stateless	  loads	and	environments.	This	demands	innovative	solutions	to	chal-
                application	services,	highly	interactive	application	services,	such	as	  lenging	 issues,	 such	 as	 workload	 profiling	 and	 clustering,	 inter-file
                networked	virtual	environments	(NVE)	for	large-scale	internet	games,	  association,	environment	benchmarking,	data	and	storage	manage-
                require	states	in	a	virtual	machine	to	be	maintained,	and	as	a	result	  ment	 strategies	 for	 different	 workloads	 and	 environments,	 on-line
                are	much	more	complex.	It	is	much	easier	to	manage	and	to	migrate	  monitoring	 and	 workload	 classification,	 as	 well	 as	 the	 selection	 of
                virtual	machines	with	stateless	application	services.	Using	NVE	as	an
                                                                     management	strategies.
 16                                                                                                              17
   12   13   14   15   16   17   18   19   20   21   22