電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2011年3月10日 星期四

我的研究(給新生的一封信)





下週研究所放榜,對我的研究有興趣的學生來信,很有禮貌地很完整地介紹自己,說他已經看過我們實驗室的網頁,然後詢問能否來找我當面請教。比起許多學生完全不懂事地寫信來或是見面時馬上就要我介紹實驗室給他聽,態度上要好太多了。因此,我特地寫封信回他,介紹我正在做的研究。他來信用英文,我就回英文。寫完之後,乾脆到處張貼,給即將進入研究所的新生看看,有興趣的來談,非誠勿擾。

Dear New Graduate Students,

It is perfectly fine for you to contact the professors that you would like to work with in the future. Choosing your advisor is a big decision for you, and it is important that you know about the professor's research interests, personality, and work style before you join his/her lab. For that, you need to know yourself first.

Some of my students and I have been researching on embedded systems and cloud computing systems. To understand embedded systems, we study embedded applications, embedded OS, and embedded architectures to get the complete picture on how the systems perform. In this area, our major targets now are Android systems, performance tools, and virtual platform. For cloud computing systems, we study parallel and distributed computing, including parallel computer architecture, optimization of parallel applications, and performance analysis of cloud-based applications.

Android is one of the hot topics in computers. We are not just writing Android applications -- many students who know Java programming can learn how to do that by themselves in weeks. We want to know the internals of Android and how to make it better for important applications. Android smartphones and tablets are already popular in the market, and we think that is just the beginning. Just like PCs in the past, Android systems will be everywhere to perform all sorts of applications in the future. The question for us and many companies in Taiwan is: How to design a competitive Android system? Before we can answer that question, we need to understand Android first. 

Android is based on Linux, and I have been teaching a Linux kernel course since 2006. There are many interesting works in Linux, and I think students can learn a lot from hacking the kernel and trying to improve a Linux system. I have also worked on state-of-the-art supercomputers and enterprise systems in the past, and from the experiences I know the required knowledge and skills to hack complex computer systems and the methodologies to analyze their performance systematically. Performance tools and virtual platforms are important techniques for us to understand what happens in a system. We try to improve existing performance tools and design new tools on virtual platforms, so that even a beginner can also benefit from these tools.

Cloud computing is another hot topic of Today, even those who don't really know computer systems can talk about cloud computing in public. We don't think that cloud computing is re-inventing the wheels because what really matters is the infrastructure technologies that are used to make cloud computing more and more power and efficient. I don't work on cloud computing simply because it is hot, although many people do. I do research on it because I work on parallel processing and a variety of computer systems in the last 18 years. Some people think that cloud computing is simply moving existing applications or services from a company's server room to a service provider in the cloud -- that is merely a user's view of cloud computing. Knowing how to do that is not far from knowing how to install an operating system on a PC, which is really not a big deal. Instead of being a user, we want to understand how to build better cloud computing systems and improve cloud computing applications. At this moment, we see many interesting, open research topics in this area, including security and privacy issues, application migration, cloned execution, virtualized execution environment, performance monitoring, etc.

As you can see, the topics mentioned above are quite practical, but they are very challenging. Personally, I would like to make contributions by solving real problems, and I hate to waste my time on useless research. Since we choose to work on hot topics and complex systems, it is mandatory that my students and I have a lot of old things and new things to learn everyday, and it may be hard for some new students. As for myself, I love learning -- learning to become smart in doing things. I hope my students share the same view as I do and have fun learning things in our lab. Thus, I don't like to micro-manage my students, but I want my students to manage their projects and learn how to become smart when they work on computer systems. That's what I really wanted to teach when I decided to join the university, and that's how we will all become smarter in the future.

Please let me know if you have any questions and if you would like to talk to me in person. 

Sincerely,

- Shih-Hao Hung