123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # StarPU --- Runtime system for heterogeneous multicore architectures.
- #
- # Copyright (C) 2009-2020 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
- #
- # StarPU is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published by
- # the Free Software Foundation; either version 2.1 of the License, or (at
- # your option) any later version.
- #
- # StarPU is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- #
- # See the GNU Lesser General Public License in COPYING.LGPL for more details.
- #
- Contents
- ========
- - Directory structure
- - Developer Warnings
- - Naming Conventions
- - Coding Style
- - Error handling
- Directory structure
- -------------------
- The directory structure is as follows:
- - src : internal source for StarPU
- - include : public API
- - tests : unitary tests
- - examples : examples using StarPU
- - doc : documentation for StarPU
- - tools : tools for StarPU
- StarPU extensions have their own directory (src/include/tests/examples) structure:
- - mpi : The MPI support
- - socl : the StarPU OpenCL-compatible interface
- - sc_hypervisor : The Scheduling Context Hypervisor
- - starpufft : The FFT support
- Some directories contain only build system details:
- - build-aux
- - m4
- - autom4te.cache
- Developer Warnings
- ------------------
- They are enabled only if the STARPU_DEVEL environment variable is
- defined to a non-empty value, when calling configure.
- Naming Conventions
- ------------------
- * Prefix names of public objects (types, functions, etc.) with "starpu"
- * Prefix names of internal objects (types, functions, etc.) with "_starpu"
- * Names for qualified types (struct, union, enum) do not end with _t, _s or similar.
- Use _t only for typedef types, such as opaque public types, e.g
- typedef struct _starpu_data_state* starpu_data_handle_t;
- or
- typedef uint64_t starpu_tag_t;
- * When a variable can only take a finite set of values, use an enum
- type instead of defining macros for each of the values.
- Coding Style
- ------------
- * Curly braces always go on a new line
- Error handling
- --------------
- * Use STARPU_ABORT() for catastrophic errors, from which StarPU will never
- recover.
- switch (node_kind)
- {
- case STARPU_CPU_RAM:
- do_stg();
- break;
- ...
- default:
- /* We cannot be here */
- STARPU_ABORT();
- }
- * Use STARPU_ASSERT() to run checks that are very likely to succeed, but still
- are useful for debugging purposes. It should be OK to disable them with
- --enable-fast.
- STARPU_ASSERT(j->terminated != 0)
|