F2F Logo.

The F2F Computing logo.

Friend-to-Friend (F2F) Computing

The Spontaneous Desktop Grid

Friend to Friend (F2F)-Computing is a new paradigm for ubiquitous and distributed computing, merging ideas from peer-to-peer, Cloud Computing, and social networks. F2F Computing is offering a middleware on top of the multi-protocol instant messengers. On top of this middleware you can write simple distributed applications and services.

It was boot strapped in the P2P Grid Software Project at the University of Tartu and is currently under heavy development by my research group. It is released under the LGPL license.

For issue-tracking, see: http://code.google.com/p/spontaneous-desktop-grid/issues/list

News

Subprojects

Downloads

If you are brave, you can also directly try one of our releases. Just unpack it and start either the sh or the batch file. You find examples in the examples-folder.

Versions of the visualizer, you find here:

If you want to try out the blender example in there, you will also need blender preinstalled on all client computers. The Blender executable has to be in the PATH.

However, if you seriously want to use f2f, you will need at least the F2F development module to create your own F2F applications.

Documentation

The documentation is a little obsolete now, as we are rewriting F2F Computing. Have a look at "Get started with the F2F Computing development".

For initial documentation look at the installation documentation or Keio's master thesis which can be downloaded under my advising page (direct link to Keio's thesis).

If you want to try it out, have a look at our google-project.
There you will find the brief installation and development documentation.

A small introduction

Current trends in scientific computing/computational science show the increase of the needs for more computational power. Some examples are large-scale simulations in environmental and engineering science, pharmacy, and chemistry. At the same time, computer architectures move more and more towards distributed and multi-core processor architectures. Therefore, parallel and distributed computing becomes more important. One way to facilitate increased computational power is super or cluster computing.

At the same time, Grid computing is becoming more important as it networks single computers, servers, supercomputers, clusters and special devices into a global resource. Grid computing tries to network different computing centers, companies, and universities and make the networked resources available to research groups and companies. Various frameworks exist to support GRID Computing, like the Globus Toolkit, UNICORE, or the Condor Project. The programming model for grid computing is still on the level of batch processing of embarrassingly parallel algorithms (processors do not communicate with each other). Communication crossing the individual grid-node borders is extremely complex.

Nowadays, grids are very heavyweight and complex, especially submitting small jobs is in no relation to the administrative support needed to run the grid infrastructure. The initial metaphor for the computational grid being as easy as a power grid is still unfulfilled (Compare NewWindow("http://mig-1.imada.sdu.dk/MiG/Mig/published_papers/The_Grid_Taken_Literally.pdf","B. Vinter et. al.: The Grid Taken Literally")). The resources in Grids are centrally managed by IT professionals. Hence, they create a considerable amount of work to administer and maintain.

A step to making networked computing power more accessible to the public is Public-Resource Computing as proposed in the BOINC approach. It enables the Desktop GRID, actually networking home-PCs to a GRID. Famous examples, using this, are SETI@home and Einstein@home. This approach is still targeted at small research groups trying to solve problems which take an enormous computational effort in terms of computational time, usually needing years to compute.

As computational demands for applications and simulations continuously grow, making more computational resources publicly and easily available, it is very interesting for small research groups, individual researchers, or small companies.

To facilitate a public usage of Grids even more, we extend Grid computing with techniques from peer-to-peer computing combined with instant messaging. Instant messaging is used by the vast majority of computer users. We assume, that using instant messaging techniques for the administrative part of setting up the Grid will open Grid capabilities to the public and enable thereby a personal Desktop Grid. It provides a new approach for authentication and authorization.

As skype made voice-over-ip usable by everyone and encouraged by the popularity of the SETI@home project, we think that the simplicity of forming social networks with mutual trust in current instant messaging systems will overcome the administrative problems persisting in nowadays Grid middleware.

Hence, single researchers, very small research groups, and small companies will be able to combine their computational power with their friends or colleagues and be able to solve their computational intense problems much faster than today. The ease in administration and scalability already observed in Public-resource computing due to its Peer-to-peer manner will also apply to our Spontaneous Desktop Grids as these are also formed in a peer-to-peer manner.

Analogue to peer-to-peer the here applied paradigm is called friend-to-friend computing (F2F computing) as a contraction of Grid, peer-to-peer, and friends relating to the spontaneously formed social networks.

The research is driven by implementing and evaluating the following three scenarios. Their underlying ideas is to support scientists or students in small projects.

1. Simulation Boost

  • A chemistry (further planned scenarios apply to fields of mathematics, bio-informatics, physics, or biology) student needs to run a simulation - here of a reaction. The student has to do this multiple times with different input parameters. To accelerate getting the results the student asks colleagues and friends to share their computational power. (Applying a decomposition tool for solving partial differential equations like DOUG could also be a usecase here.)

2. Dynamic Rendering Grid

  • Some arts students or a small movie studio want to render a part of an animation movie (compare for example Elephant's dream). To speed up this process they create in their instant messenger a chat group and start the dynamic GRID to carry out the distributed rendering task.

3. Language Analysis

  • For OCR, automatic analysis of texts, speech recognition, and automatic translation huge trees and databases on language files have to be computed. To create these data files some weights have to be adjusted and the files have to be re-created, resulting in a very time consuming process. This could also sped up with spontaneous GRIDs established in a F2F manner.

F2F computing will enable small research groups, research individuals, and small to medium sized software companies to solve computational intensive tasks with their own means. It will probably have an impact on scalability of current Grid projects and will yield results for simplified Grid application development.

Resources

look on this subpage

Comments

Please feel free to share your ideas and comments with me here.
Posted by ulno at 2008-11-07 00:54:41

ulno.net: f2f (last edited 2010-05-14 13:08:43 by artjom85)