Gerard Braad about Openness and Interoperability

Software/Hardware Engineer and Visuals Artist; Avid user of Unices and Linux; a misfitted geek who develops in .NET on Un*x. SCJP Java, MCP C#. Sysadmin Linux/Un*x, Mac OS X (&Win). Python, C/C++, Alt.NET, ARM, DSP, FPGA.

While I'm on the road you can follow more frequent updates via my Identi.ca profile (feed).

Monday, December 14, 2009

Migrating from VMware to KVM

A lot of reports on the internet talk about the reduction of costs when you invest in virtualization. This is something I will certainly not deny after many years of experience with VMware Workstation, VMware Fusion, VMware GSX (now VMware Server) and VMware ESX and having implemented several high-availability setups using ESX. Even at home I had several whitebox servers with Virtual Center... until I migrated away to KVM. In this article I will explain the reason of the migration and how to perform it with an example. It is written towards people who currently run VMware GSX or VMware Server on Linux.

Motivation
It is undeniable that virtualization provide you with a lot of benefits; consolidation of servers will save you money. Maintaining your virtualized servers becomes a breeze, since they are all accessible from a single front-end. But implementing your environment on VMware comes at a price... even for the free version VMware Server; maintenance. You will still need to monitor your virtualization servers for performance and distribute your virtual machines among your servers or resource pools according to load. Although there are tools available to assist you, it is not the biggest issue.

VMware Server requires an additional operating system like Linux (or Windows). This introduces an added maintenance dependency; kernel modules which VMware uses need to be recompiled when the kernel gets updated. If a security exploit is found in the kernel, the virtualization host can be compromised and therefore jeopardize the continuity of your business. To prevent this, you update the kernel, but on reboot you notice that VMware does not start properly. On the command line you will need to perform a vmware-config.pl which build the modules. Unfortunately, your kernel headers are newer and either vmmon (virtual machine monitor) or vmnet (network component) does not build properly. Because of this, your whole infrastructure is offline until VMware provides new components or the release of the community patch package 'vmware-any-any'.

Users of VMware ESX will not have this issue, since the operating system and modules are provided in the form of the VMware's vmkernel. If a security update is needed, you only need to install an update. The previously mentioned issue  has happened to me often enough and I I wanted to have the same solution as ESX, but with the convenience of using Un*x/Linux experience for maintenance without the dependency of a third-party product. Since RHEL 5.4 this is provided as an enterprise supported solution; KVM, the Kernel-based Virtual Machine, once developed by Qumranet and now owned by RedHat. And by using CentOS this is available to everyone without too much trouble.

There are some differences between VMware and KVM. KVM is provided as part of the kernel, so any Linux distribution can provide it as part of their offering. KVM supports different formats for a virtual hard disk, while VMware only uses their own VMDK format. VMware can run in a full virtualized mode and is therefore suitable for older hardware. KVM needs a processor that provides VT-x (Intel) or AMD-V (AMD) to operate. VMware can run x86_64 guests on a i686 host, while KVM can not.

Because of this last reason, I had to reinstall CentOS on one of my systems, since it still ran an i686 version of CentOS 5.4 (on a Core2Duo E6600). This provides a good overview of what needs to be done to run KVM on CentOS.

Note: since KVM uses qemu to emulate any hardware you can also choose to use qemu without KVM as the hypervisor, but instead use the kqemu kernel module.

Installation

You will need to download an installation disc of CentOS 5.4. Prefer to use the x86_64 version; CentOS-5.4-x86_64-bin-DVD.iso. During the installation you can keep the default settings and when asked for the 'additional tasks' you will perform, do not select the 'Virtualization' option. After the installation finished, you will need to update the system to the latest updates.

From the reinstall I noticed a minor error in the CentOS 5.4 x86_64 installation. Due to installing openssl.i686 it also installed a lot of other standard i386-arch libraries. You can find out if you also have those packages installed as described in a earlier post. If you also want to remove those packages, perform the following command line option before continuing.

$ rpm -e `rpm -qa --qf '%{name}.%{ARCH}\n' |grep i386` openssl.i686

To update your system:

$ yum update

If your system is up-to-date, continue to install the needed packages for KVM and Virt-Manager.

$ yum install bridge-utils kvm kvm-qemu virt-manager virt-viewer python-virtinst

In later versions of CentOS it might suffice to issue the command "yum groupinstall 'Virtualization'", but currently this installs a Xen enabled kernel. According to the used processor, you can test to load the needed kernel module and start the libvirt daemon.

$ modprobe kvm
$ modprobe kvm-intel (or kvm-amd)
$ service libvirtd start

I normally use a different management workstation. And as an example I use a Fedora 12 installation to connect to the virtualization host (beibei). First from a tunneled connection to the host (with X11 forwarding).

$ ssh -X root@beibei
root@beibei's password: **************
# virt-manager


This will start the Virtual Machine Manager from which you can create new instances. You can of course use a Gnome desktop from the CentOS system to manage your virtual machines, but it pays off to try a seperate management workstation. This will allow you to try additional features, like live migrations between KVM virtualization servers.

This is all it needs to install KVM on a CentOS 5.4 installation. For an earlier version of CentOS, it is best to consult the wiki article about KVM.

Network settings
A default VMware Server installation will bridge the network card you have. You will probably want to have the same configuration for your KVM environment. For this you need standard Linux bridging utilities.

$ yum install bridge-utils

You only need to edit (or create) some network-scripts to make a bridge work.

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:1a:2b:3c:4d:5e
ONBOOT=yes
BRIDGE=br0


And create the bridge

$ vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Bridge


When you start the network again, you will have a br0 and eth0 device.

$ service network restart

You will now be able to select a bridged network card inside the KVM virtual machine configuration. If you have more network card, create a bridge per network card.

Converting the virtual disk files
For the migration part I choose a virtual machine who once began it's life as a physical machine; forum.survion.net. It is a Linux installation once based on FC3, got migrated to CentOS... and then ran as a VMware virtual machine.

The VMware virtual machine consists of one or more hard disk files, with the extension .vmdk and a description file, with the extension .vmx. A listing of server-forum.vmwarevm looks like:

[root@beibei server-forum.vmwarevm]# ls -al
total 29405144
drwxr-xr-x  2 root users        4096 Dec 12 20:53 .
drwxr-xr-x 21 root root         4096 Dec  9 17:32 ..
-rwxr-xr-x  1 root vmware       8684 Dec  7 21:09 nvram
-rw-------  1 root vmware          0 Jan  3  2009 Red Hat Linux.vmsd
-rwxr-xr-x  1 root vmware       2369 Dec  7 21:09 Red Hat Linux.vmx
-rw-r--r--  1 root vmware        268 Jan  3  2009 Red Hat Linux.vmxf
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 storage-f001.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:20 storage-f002.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:21 storage-f003.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:20 storage-f004.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 storage-f005.vmdk
-rw-r--r--  1 root vmware 2147221504 Aug 30 14:45 storage-f006.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 storage-f007.vmdk
-rw-r--r--  1 root vmware 2147221504 Oct 25 19:18 storage-f008.vmdk
-rw-r--r--  1 root vmware 2147221504 Nov 30 04:05 storage-f009.vmdk
-rw-r--r--  1 root vmware 2147221504 Nov 30 04:04 storage-f010.vmdk
-rw-r--r--  1 root vmware    2621440 Jul 23  2008 storage-f011.vmdk
-rw-r--r--  1 root vmware        749 Dec  7 21:11 storage.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f001.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f002.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f003.vmdk
-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f004.vmdk
-rw-r--r--  1 root vmware   17659904 Jul 23  2008 system-f005.vmdk
-rw-r--r--  1 root vmware        616 Dec  7 21:11 system.vmdk

As you can see, there are two hard disks (system and storage) and several other files. The hard disk as shown here is a fully allocated file which is divided up in seperate 2Gb files (handy for use on a FAT32 filesystem for portability). We have to convert it back into a monolithic file for use on KVM. Luckily KVM understands the monolithic VMDK file format, so we will choose this for interoperability. To convert the file you can use a VMware provided tool called vmware-vdiskmanager (includes with VMware products).

$ vmware-vdiskmanager -r system.vmdk -t 0 forum-system.img
$ vmware-vdiskmanager -r storage.vmdk -t 0 forum-storage.img


After this you will have two files that need to be copied to the in the images folder of libvirt on the virtualization host (/var/lib/libvirt/images/). You can do this using scp, ftp or mount an NFS export. From here we can create a virtual machine to connect these disk files to. Connect to the virtualization host and start the Virtual Machine Manager.

Create the Virtual Machine
Select localhost and create a new virtual machine using the context menu. Give it a unique name that identifies it easily for you, as I did: server-forum. If KVM is installed properly, you can only select "Full virtualized' from the Virtualization Method. Select the CPU architecture that fits your former VMware virtual machine and as the hypervisor: kvm.



On the 'Installation Method' page choose 'Network boot (PXE)' so you don't have to select a installation disk image.



On the 'Storage' page you deselect the 'Allocate entire virtual disk now' since we will not use the create virtual hard disk image. Beware; don't let the size become 0, since this way libvirt will not create the disk file and will fail to create the virtual machine.



On the 'Network' page you will probably want to select the bridged network card. This gives you the same functionality as VMware did as default option. On the 'Memory and CPU Allocation page' you can adjust the settings which are most close to your former virtual machine. After the summary the virtual machine will start automatically. Immediately issue a 'Force Off' as Shut down option. Now select the 'Hardware' tab.



Remove the 'Disk hda' and add new hardware of the type 'Storage' and select the system file from the storage location. If you have selected the file, you will see the correct size. Do the same of the other disks you have.



Be sure to change the boot device in the Boot options of this VM. Else it will try to start using Network (PXE) instead of the virtual hard disk.

Now everything should be ok to start the virtual machine.

Issues you might encounter
The conversion will probably not be without problems. For instance, I had a common issue with the kernel of the virtual machine. Due to a kernel panic it did not start properly. Fortunately tools are available to perform actions of the virtual hard disk files. One of those tools is guestfish. On CentOS and Fedora you can install this tool using:

$ yum install guestfish

For instance, I had to download a newer kernel and try to install this inside the virtual machine. The following commands show what I did:

$ guestfish
fs# add /var/lib/libvirt/images/forum-system.img
fs# run
Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
fs# mount /dev/sda2 /
fs# mount /dev/sda1 /boot
fs# upload /tmp/downloaded.rpm /tmp/kernel.rpm
fs# command "rpm -ivh /tmp/kernel.rpm"
fs# vi /boot/grub/grub.conf


These commands will add the forum-system.img to a qemu instance. Inside the qemu instance you will then mount the mountpoints, upload the kernel RPM from the local path to the tmp inside the filesystem. From here nothing special... and then it will issue a command inside qemu to install the kernel package. This command will run inside the filesystem as if it performed the command from the commandline. Finally I verify the grub configuration and change it if necessary. From here I was able to start the virtual machine without any errors.

Note: If you convert Windows virtual machines you might encounter more issues. Those conversion steps are outside the scope of this document, but are not impossible to perform.

Fedora 12
The latest release of Fedora includes many improvements which are virtualization related. If you want to try KVM on a workstation, you should definitely try Fedora 12.

Below here you can see virt-manager. The interface has changed a little. As you can see from the screenshot, it is connected to the local machine and two remote hosts. The console is shown from the remote host (using ssh and vnc). For this no additional configuration was needed.



It is easy to monitor the performance of a virtual machine using the Virtual Machine Manager. Here you can see the server-forum instance with an overview of CPU/Memory usage and Disk/Network activity.



Just a few days ago SPICE was released. This is an alternative to vnc to view the console of a virtual machine. It is target towards the use of a Virtual Desktop. More information about this can be found on the SPICE website. A how-to for Fedora 12 is available.

Monday, November 23, 2009

Maemo 5 SDK on Fedora 12

It is possible to install the Maemo 5 SDK (final) on Fedora 12. It only takes two minor edits to the installer script. You first need to make sure you have installed Xephyr. You can do so with the command:

$ yum install Xephyr

since the installer is not able to do so for other distributions than Ubuntu and debian. You can download the GUI installer script from Forum Nokia: Maemo 5 SDK.

In the file maemo-sdk-install-wizard_5.0.py you can change line 129 to

SB_PATH="/opt/scratchbox"

It is just optional. But to me this location feels more appropriate then '/scratchbox'. On my system it is linked to another location with other hardware and software development tools.

The current version of the script seems to fail on Fedora because of not being able to install scratchbox due to a missing path.

Change line 2311 to:
exec_cmd(sb_installer_fn + opt + "-s " + SB_PATH)

Change line 2351 to:
cmd = "%s -d -m %s -s %s" % (sdk_installer_fn, self.__sdk_inst_m_opt_arg, SB_PATH)

This includes the Scratchbox path during the command invocation. You can then install the SDK by running the script. It will handle the download of PyQT and sip itself.



After the install you can start Xephyr. However you can not use the -kb option:

$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &

The first start of af-sb-init.sh failed for me with a coredump and several segmentation faults. try to close the scratchbox environment and try again.



Note: I haven't tried it with SELinux as enforcing since I currently run my workstation as permissive. Discussion is possible on the Maemo developer's forum posting.

Tuesday, November 17, 2009

聚集:Fedora 12 正式发布 from LinuxTOY

以技术创新驰名的 Fedora Project 今日发布了代号 Constantine 的 Fedora 12 ,口号 Unite,取意“聚集开源软件智慧”。

新特性
  • 性能优化:在 32 位平台上全部软件包针对 i686 架构重新编译,并对 Intel Atom 处理器进行性能调优。
  • NetworkManager :改善了对于宽带、蓝牙和 IPv6 的连接配置过程。配合 PolicyKit ,网络配置只需要点击鼠标即可轻松完成。
  • 下一代 Theora 编码支持:Fedora 12 集成了最新的开源视频编解码器 Theora 1.1 版本(详情见本站此文)。
  • 更好的显卡支持:针对 Nvidia Nouveau 驱动和 AMD R600/700 系列的 KMS 支持,同时为 Intel 显卡引入 DisplayPort 支持。
  • 虚拟化支持:改善了 KVM 性能,并提供虚拟机磁盘镜像监控工具 guestfish。
  • 自动臭虫汇报系统和 SELinux:新的崩溃收集程序 abrt 只需要点击几下鼠标即可将遇到的软件或 SELinux 提交至 Bugzilla,方便开发者修复。
  • 新的 Dracut initrd 启动系统:并行、以事件为单位的 Dracut 系统进一步加快启动速度。
  • PackageKit 插件:当用户尝试运行一个包含在尚未安装的软件包中的命令时,PackageKit 可以自动提示安装相应软件包。
  • 按需蓝牙服务:蓝牙服务会根据需要自动启动和停止。
  • Moblin 桌面环境:增加了 Moblin 桌面环境软件包组以及Fedora Moblin Spin 。
  • PulseAudio :增添了 UPnP 和 DLNA 支持,可以直接将音频流发送至 PS3 等设备。同时改善了热拔插和蓝牙设备支持。
  • 更加安全:降低了部分系统文件和进程的运行访问权限,避免使用 root 权限访问。同时为 SELinux 增添了沙箱支持。
  • Broadcom 固件:默认包含了 Open Broadcom 固件,对部分 Broadcom 无线网卡提供 out-of-the-box 支持。
  • 混合 Live 镜像:现在只需要使用 dd 即可创建光盘或者 USB Live 镜像,不过还是推荐使用 Livecd-tools 以获得诸如保留空间等功能。
  • 更好的摄像头支持:改善了部分摄像头的成象质量,尤其是很多廉价摄像头。
  • GNOME 2.28:使用 Gnote 替代了 Tomboy 成为默认便签,用 Empathy 替代了 Pidgin 成为默认即时通讯客户端。
  • GNOME-shell 预览:尽管 GNOME 3.0 延期了,但是依然可以在 Fedora 12 中提前体验下 GNOME Shell 的。
  • KDE 4.3:升级版的 Air 主题,可配置的快捷键支持,新的窗口管理器特效以及更好的红外线遥控支持。
  • 开发者:Eclipse Galileo, Perl 6, PHP 5.3, Netbeans 6.7.1
  • 管理员:GFS2 集群 Samba 管理
  • X.org 1.7.1:包含支持多指点设备支持的 XI2。

英文原文及详细贡献者
官方镜像下载
完整功能列表

Thanks 黑日白月, Orginal article

Saturday, November 07, 2009

Get to know a Fedora Ambassador or User

Name: Gerard Braad
IRC-Nick: gbraad
IRC-Channels: #fedora-ambassadors, #maemo, #beijinglug on freenode (seldom)
Location: Apeldoorn, NL / Beijing, CHN
Fedora Ambassador: Netherlands
FAS username: gbraad

Gerard Braad

Saturday, October 24, 2009

Nokia N900; the geek-device!

Phones should be open to anything
During the Maemo Summit 2009 I was given a Nokia N900 for evaluation and development. For about three weeks now I have been able to use the device and got used to it in such a way that I seldom check the internet on my notebook or desktop. Here you will find my thoughts on using this 'pre-production' model.


Services I often use, like Identi.ca and Twitter, are consolidated using my Google Mail account. Normally I would quickly browse the web to check my mail and check the messages I received while I was offline. During a working day, I tended to use my other Nokia phone for tethering to my N810. This way I was mostly always online (Bluetooth sometimes wouldn't re-establish until a power down of both devices)... I was able to receive VoIP calls (SIP) on both my phone and internet tablet. Most of the time I would still use my notebook to have a full web experience or respond to my emails... and for calendar-keeping? I gave up on that... Symbian's calendar isn't comparable to the Palm calendar (or Agendus!). I have tried to use the N810 as a PDA, but the GPE tools didn't work well for me... I missed a good synchronization and integration: then came the N900.

Near desktop experience
The N900 is very powerful! That needs to be said. It is powered by a Texas Instruments OMAP3430. This processor is comparable to the BeagleBoards OMAP3530. The ARM Cortex-A8 core runs at 600Mhz and has the same PowerVR SGX 530 GPU. Only the DSP core is a little slower with 430MHz (TMS320C64x). The device gives a feeling of having more than enough power. When you start a game, like Bounce, you can still see it being active in the task-switching overview; true multi-tasking.

The OMAP-series processor can provide a full desktop experience, like the BeagleBoard can do with for instance Fedora and Ubuntu. However, this is also where the N900 falls a little short. Instead of providing a mini-HDMI connector it only has a composite out. After some tweaks in the OS you can connect a Bluetooth keyboard and mouse... and using the correct cables even USB. But you can't connect a larger screen... this way it is not a convergence device which could replace a desktop computer. Compare this to the the Creative Zii which I have for development; it provides HDMI-out and can playback a HD video in 1080p (but it can't do the desktop experience at the moment). The composite image quality is in my opinion too blurry. For games it works well, but viewing photos or a video felt a little disappointing.

Battery time and use
Lately I have seen a lot of news about the Motorola Droid. This device is also powered by the OMAP3430 and would be thinner than a iPhone 3GS. I am curious to see how they deal with battery time... since that battery must be small! The N900 is quite large and the capacity of the BL-5J battery is less than the one in the N810. The battery is empty after half a day of extensive use; GPS always on, always online (using 3G or lower depending on the location in NL, WLAN at home), FM transmitter on when I go to work (and back home) while playing music of course.

Luckily you can charge the device using the MicroUSB connector and at work I always have to do so. During this 'extensive' use I seldom made a phonecall! For me the N900 is primarily a mobile computer and a phone second. The GSM functionality provides me with the cellular data service I was missing the N810. Most of my phonecalls were done using VoIP (over 3G) and were short. I did notice the device became VERY HOT during a VoIP (over WLAN) of about 30 minutes.

Internet
If you want the full Internet in a device, the N900 is what you want. It has a Firefox browser which loads pages fast and plays Flash videos from YouTube without any hiccup. Photos you take with the camera can be immediately uploaded to remote services, like Flickr and Ovi. GPS information can be set as a status message for your IM. Maemo uses the telepahy framework for messaging and video/voice calls. Out-of-the-box it provides support for SIP, Jabber/XMPP (and Google Talk, Ovi), Skype and GSM (Voice calls, SMS). What I really like is the way conversations are kept or started. Last messages are all easily viewed from the Conversations application.

All contacts are aggregated from the IM accounts I use. This immediately fills the gap of not having a phonebook service for my SIP accounts. Contacts from different sources can be merged into a single contact entry. If you want to call a contact from the phone application you can easily see if he is online using Google Talk or Skype and even initiate such a call.

You can send a message from either the contacts or conversations (or even desktop shortcut) and it will open a separate window in which you can see the chat. I haven't felt the need to install Pidgin, unlike what I did for the N810. By installing the telepathy-extras package you can also integrate MSN, Yahoo, ICQ, IRC and more.

Closing thoughts
Maemo 5 includes a simple calendar which for the moment works quite well for me. Although you can not sync it to a remote service, it works very intuitive. Notes, calendar entries and your contacts can be synchronized using the Nokia PC Suite or SyncML compatible client.

The camera in the device is 5 mega-pixels and can really make very good quality photos. Just take a look at the Photojourney with N900 from tigert.

As a game device the N900 could be a very good competition against the iPhone. It easily plays games like Quake3. Just connect it to the TV and play using the keyboard and the accelerometer! It is almost like having an embedded Wiimote. While the N810 still had a D-pad, this was dropped on the N900. The cursor keys feel more natural for typing emails... but for gaming it feels like you miss some control. Also the screen does not allow multitouch... so no on-screen joysticks for now.

Although the device has a complete open development model it currently lacks commercial support of big game companies. I have to admit, this is still where the iPod Touch and iPhone excels... it has a lot of available games. This will be addressed in the next release of Maemo (codenamed Harmattan). It allows a security model which will probably attract a lot more commercial development.

Last week Nokia postponed the release of the N900 to allow more feedback from developers and evaluators. It also gives developers more opportunity to get familiar to the N900. As an example, most applications were installed in the / (root) filesystem, while large datafiles should have been installed to the user directory (/home/user). I had suffered from an almost complete device lock-up due to system memory being full. This should not happen to a none experienced (Linux) users. So I really think Nokia does a good thing here... They really want to give new users of Maemo a good experience.

So if you are searching for a game console rather buy a PSP Go or even iPhone. But if you bought a Macbook with the idea of having Un*x under the hood (and a terminal) you should buy a N900. Even the Android falls short in this area. If you want a phone with mobile computer ambitions (being powerful and useful) buy a N97.

For me the iPhone is a good sheep-phone, while the N900 is the real geek-phone (/device)!


Take note, I have been using a 'pre-production' model. The full production model will likely provided a much better experience.

Monday, September 21, 2009

Fedora 11 on coLinux (fixes)

Recently HenryN (of coLinux) made some minor changes to the Fedora 11 image for coLinux. The new image is available from the coLinux forum at SourceForge or directly from [FedoraPeople] or [MegaUpload] (70.3 MB).

Thanks!

Note: the original image has been replaced by this fixed image. If needed the original image is available upon request. However it should be considered obsolete.

Wednesday, September 09, 2009

Beijing LUG meeting (8th of September 2009)

Last night I attended a meeting of the Beijing Linux User Group. It was for me the first time I could attend it during my time in Beijing and it is certainly something I will do more often. Every 2nd Tuesday of the month they will have a group meeting in which they will have speakers about a subject. I was lucky to listen to Coly Li and Ulrich Drepper.

Ulrich Drepper at BLUGColy Li is a kernel developer who supervised a Google Summer of Code student, YuEr, who ported openSUSE to MIPS. YuEr showed what he had done, the results and the errors still left. He was able to start a X11 session using FVWM on a Gdium (MIPS-based smartbook). For this he had used a cross-platform RPM build environment targeting MIPS and qemu. Amazing results for such a short period he was able to work on it.

Ulrich Drepper gave the same talk as he did at the RedHat Summit in Chicago about 'Acceleration Through Stream Computing'. In this talk he explains how to speed up applications by using vectorization and the vector extensions as provided by SSE. Using templates and partial specialization in C++ it is possible to speed up applications without a lot of changes. The specialized critical code could be altered by experts and just a rebuild would suffice. He explains this for instance with a simple example of a vector scaling and translation... the result speaks for themselves. It was also apparent that Ulrich is not a promoter of CUDA (or even CTM) either. In my opinion they result in vendor-lockin. The alternative to look for is OpenCL...

Overall it was a nice evening. I talked to a talented bunch of 'folklore dancers' wearing T-Shirts. If you ever have the chance to be in Beijing, stop by... you will not regret it.

Followers