Browse Source

doc: Rework "StarPU in a Nutshell".

Ludovic Courtès 13 years ago
parent
commit
dda77b56c1
3 changed files with 36 additions and 12 deletions
  1. 5 0
      doc/chapters/advanced-api.texi
  2. 30 11
      doc/chapters/introduction.texi
  3. 1 1
      doc/starpu.texi

+ 5 - 0
doc/chapters/advanced-api.texi

@@ -292,6 +292,11 @@ the StarPU sources in the directory @code{examples/scheduler/}.
 @node Scheduling Policy API
 @subsection Scheduling Policy API
 
+While StarPU comes with a variety of scheduling policies (@pxref{Task
+scheduling policy}), it may sometimes be desirable to implement custom
+policies to address specific problems.  The API described below allows
+users to write their own scheduling policy.
+
 @deftp {Data Type} {struct starpu_machine_topology}
 TODO
 @end deftp

+ 30 - 11
doc/chapters/introduction.texi

@@ -3,7 +3,7 @@
 @c This file is part of the StarPU Handbook.
 @c Copyright (C) 2009--2011  Universit@'e de Bordeaux 1
 @c Copyright (C) 2010, 2011, 2012  Centre National de la Recherche Scientifique
-@c Copyright (C) 2011 Institut National de Recherche en Informatique et Automatique
+@c Copyright (C) 2011, 2012 Institut National de Recherche en Informatique et Automatique
 @c See the file starpu.texi for copying conditions.
 
 @menu
@@ -40,6 +40,35 @@ fashion.
 @node StarPU in a Nutshell
 @section StarPU in a Nutshell
 
+StarPU is a software tool aiming to allow programmers to exploit the
+computing power of the available CPUs and GPUs, while relieving them
+from the need to specially adapt their programs to the target machine
+and processing units.
+
+At the core of StarPU is its run-time support library, which is
+responsible for scheduling application-provided tasks on heterogeneous
+CPU/GPU machines.  In addition, StarPU comes with programming language
+support, in the form of extensions to languages of the C family
+(@pxref{C Extensions}), as well as an OpenCL front-end (@pxref{SOCL
+OpenCL Extensions}).
+
+@cindex task-based programming model
+StarPU's run-time and programming language extensions support a
+@dfn{task-based programming model}.  Applications submit computational
+tasks, with CPU and/or GPU implementations, and StarPU schedules these
+tasks and associated data transfers on available CPUs and GPUs.  The
+data that a task manipulates are automatically transferred among
+accelerators and the main memory, so that programmers are freed from the
+scheduling issues and technical details associated with these transfers.
+
+StarPU takes particular care of scheduling tasks efficiently, using
+well-known algorithms from the literature (@pxref{Task scheduling
+policy}).  In addition, it allows scheduling experts, such as compiler
+or computational library developers, to implement custom scheduling
+policies in a portable fashion (@pxref{Scheduling Policy API}).
+
+The remainder of this section describes the main concepts used in StarPU.
+
 @menu
 * Codelet and Tasks::           
 * StarPU Data Management Library::  
@@ -47,16 +76,6 @@ fashion.
 * Research Papers::
 @end menu
 
-From a programming point of view, StarPU is not a new language but a library
-that executes tasks explicitly submitted by the application.  The data that a
-task manipulates are automatically transferred onto the accelerator so that
-the programmer does not have to take care of complex data movements.  StarPU
-also takes particular care of scheduling those tasks efficiently and allows
-scheduling experts to implement custom scheduling policies in a portable
-fashion. The target audience is typically developers of compilers or computation
-libraries which want to seamlessly extend them to support heterogeneous
-architectures.
-
 @c explain the notion of codelet and task (i.e. g(A, B)
 @node Codelet and Tasks
 @subsection Codelet and Tasks

+ 1 - 1
doc/starpu.texi

@@ -63,7 +63,7 @@ was last updated on @value{UPDATED}.
 @comment  better formatting.
 @comment
 @menu
-* Introduction::                A basic introduction to using StarPU
+* Introduction::                Getting started
 * Installing StarPU::           How to configure, build and install StarPU
 * Using StarPU::                How to run StarPU application
 * Basic Examples::              Basic examples of the use of StarPU