Writing CUDA applications using the D programming language

On the release note of Fedora 14 there is the introduction of the support for developing using the D programming language, so I’ve readed something on that language and I feel that probably I can actually use it, the main interesting feature for me is the simple interoperability with code written in C.

So just for testing purpose I decided to write a small CUDA (I’m pretty sure that you already know what is cuda) application using the D language.

Of course is not possible to write CUDA kernel and device functions directly in a D module so what is needed is to implement kernels in a cuda source file (with a proper launcher) and then use the kernel from the D module.

The application that i’ve written converts a string in uppercase, reading the input from the command line (remember is just for testing).
Read more of this post

gVirtuS: the first beta release

We are proud to announce the first beta release of gVirtuS.

gVirtuS allows an instanced virtual machine to access GPGPUs in a transparent way, with an overhead  slightly greater than a real machine/GPGPU setup. gVirtuS is hypervisor independent, and, even though it currently virtualizes nVIDIA CUDA based GPUs.

The software, developed for research applications, is provided as it is.

We encourage using and testing it in order to collect useful feedbacks and suggestions.

Take a look to the gVirtuS project page: http://osl.uniparthenope.it/projects/gvirtus/.

Using Nvidia drivers on Fedora 12 with DKMS

Although it sucks too much using closed source software, someone wants or have to use that. It’s the case of Nvidia graphics drivers: someone wants them to obtain better performances, others have to use them because their adapters don’t work well with open source drivers, and others (like me) have to use Nvidia closed drivers for developing and using CUDA applications.

This is essentially a manual installation but thanks to DKMS, Dynamic Kernel Module Support, it isn’t required anymore to reinstall the driver at every kernel update.

Read more of this post

Fedora 11 Release Party Napoli

When and Where

  • Thursday, June 18
  • 11:30 am onwards
  • Location: University of Naples “Parthenope” – Faculty of Science and Technlogies, Centro Direzionale di Napoli Isola C4

Responsible Ambassadors

Attendees

  1. Gianluca Varisco
  2. … add yourself here! …

Program

  • 11.30: “Welcomes to the conference” by Prof. Giulio Giunta
  • 11.50: “Fedora 11, New Features” by Gianluca Varisco
  • 12.20: “Free Software availment in italian universities” by Carlo Palmieri
  • 12.40: “Presentation of the new magazine PaperUni” by Marielvira Matrone
  • 13.10: “Open lunch and free speech”
  • 14.30: “Workshop: realizing a scientific cluster using Fedora” by Giuseppe Agrillo
  • 15.30: “About the NaLUG” by Gianfilippo Giannini
  • 15.50: “The Fedora project, the community, the ambassadors” by Gianluca Varisco
  • 16.20: “Future projects, distribution of gadgets and final regards” by Giuseppe Coviello

  • 23.00: Party restarting at Arenile Reload

Organizers

Contributors

Contact

  • Contact: Giuseppe Coviello (cjg@fedoraproject.org).

Using ZFS for home partition on Fedora

ZFS is a great filesystem: it’s based on a copy-on-write transactional model, it supports dynamic striping of data across all devices, it supports a transparent compression and many more features, but the more interesting feature to me is the support for snapshot and clones.

I feel interesting snapshots and clones primarily for backups: using a snapshot could be very trivial making a backup of the filesystem, moreover it’s possible making incremental backup with snapshots.

Although ZFS is developed primary for Solaris and OpenSolaris, it’s possible to use it on GNU/Linux through FUSE (Filesytem in Userspace), so it’s possible to use ZFS on GNU/Linux for all purposes (although could be very trouble using it for the root filesystem).

Fedora (10 or 11 ones) is pretty ready for using ZFS: it’s available a package (zfs-fuse) for ZFS-FUSE on the official repository, so the first step for using ZFS is installing this package with yum:

yum install zfs-fuse

Then it’s possible to create the pool of devices containing the filesystems and the filesystems; first of all I’ve created a pool on a partition of one of the harddisks of mine; before creating the book I’ve labelled the partition “ZFS” using “Palimpsest Disk Utility”, so I’ve created the pool with:

zpool create zfs /dev/disk/by-label/ZFS

And then the filesystems, setting the use of compression and disabling the storing of file access time:

zfs create zfs/home
zfs set compression=on zfs/home
zfs set atime=off zfs/home
zfs create zfs/home/cjg

Finally I’ve setted the mount point for the home filesystem:

zfs set mountpoint=/home zfs/home

Les jeux sont fait! From the next reboot I’ll use ZFS for my /home partition.

Now I had to create a new pool for storing the backups, I’ve created it on another partition of another disk (the partition is labelled “ZFSBACKUP”):

zpool create zfsbackup /dev/disk/by-label/ZFSBACKUP
zfs create zfs/home
zfs set compression=on zfs/home
zfs set atime=off zfs/home

I want that all backups will be stored on the zfsbackup pool and I want, also, to use incremental backups, so I’ve setted up a simple script for making incremental backups from the zfs pool to the zfsbackup pool:

#!/bin/bash

DATE=`date +%F-%H-%M`
zfs snapshot zfs/home/cjg@$DATE
zfs send -i latest zfs/home/cjg@$DATE > dump
zfs recv zfsbackup/home/cjg < dump
rm dump
zfs destroy zfs/home/cjg@latest
zfs rename zfs/home/cjg@$DATE zfs/home/cjg@latest

# End Of File

Simply it creates a snapshot of the zfs/home/cjg filesystem and calling it with the current date and time, then with “zfs send” it creates an incremental replication from the latest snapshot, then the replication it’s importend on zfsbackup/home/cjg, the latest snapshot on zfs/home/cjg is removed and the current snapshot is renamed as the latest.
In this way all the snapshot’s history is stored only on the zfsbackup pool.

Before using this script for the first time I had to create the “latest” snapshot on zfs/home/cjg and send it to zfsbackup/home/cjg with:

zfs snapshot zfs/home/cjg@latest
zfs send zfs/home/cjg@latest > dump
zfs recv zfsbackup/home/cjg < dump

To access a particular snapshot it’s possible to use:

zfs clone zfsbackup/home/cjg@2009-05-02-12-33 zfsbackup/home/2009-05-02-12-33

So it’s possible to access to the snapshot file through “/zfsbackup/home/2009-05-02-12-33″; of course it’s possible to use “zfs rollback” to restore the filesystem from a snapshot.

When the clone isn’t needed anymore it’s possible to remove it with

zfs destroy zfsbackup/home/2009-05-02-12-33