Page 16 - profile-ok
P. 16
研究群 | 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-
Google, have been extensively used in computer graphics and search
multaneously. The NVE needs to be partitioned over multiple servers.
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