GithubHelp home page GithubHelp logo

flamegpu / docs Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 6.0 277 KB

Read the docs documentation for FLAMEGPU 1.x

Home Page: http://docs-v1.flamegpu.com

Makefile 38.62% HTML 0.31% Python 23.22% Batchfile 37.86%

docs's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

docs's Issues

Parameter Exploration Example

It may be worthwhile documenting the preferred approach to parameter exploration for FLAME GPU models.

I.e. as of 1.5 this is:

  1. Use Environment constants for parameters
  2. Load these values from the XML Model file (or a custom init function)
  3. Initialise population via Init function
  4. Use 1 folder per init file to avoid overwriting
  5. Jobs can then be ran sequentially on a single device (or multiple concurrent runs for very small models) or batched across multiple devices (i.e high throughput on clusters)

min and max analytics functions

Document the newly created min and max analytics functions, available for non-vector, non-array agent variables.

Should be possible for vectors but would require a custom comparison object.

Current RTD builds failing

From http://readthedocs.org/projects/flamegpu/builds/6522833/:

python2.7 -mvirtualenv --no-site-packages --no-download /home/docs/checkouts/readthedocs.org/user_builds/flamegpu/envs/latest
python /home/docs/checkouts/readthedocs.org/user_builds/flamegpu/envs/latest/bin/pip install --use-wheel --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/flamegpu/.cache/pip Pygments==2.2.0 setuptools==37.0.0 docutils==0.13.1 mock==1.0.1 pillow==2.6.1 alabaster>=0.7,<0.8,!=0.7.5 commonmark==0.5.4 recommonmark==0.4.0 sphinx<2 sphinx-rtd-theme<0.3 readthedocs-sphinx-ext<0.6
python /home/docs/checkouts/readthedocs.org/user_builds/flamegpu/envs/latest/bin/pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/flamegpu/.cache/pip -rrequirements.txt
python setup.py install --force
python: can't open file 'setup.py': [Errno 2] No such file or directory 

Host access of agent variables (1.5)

Document accessing agent data on the host in init/exit/step functions.

Do this VERY clearly, as there may be significant performance implications.

Possibly also include an example / details of how to implement a custom output function.

FLAMEGPU/FLAMEGPU#178

Document early_exit functions

Document get_exit_early() and set_exit_early()

Also document exit functions executing on window close via freeglut (if merged)

Message Wrapping

Spatially partitioned messaging (and discrete messaging) both wrap in the X and Y dimensions. This should be clearly stated in the documentation.

Describe host agent creation

From 1.5 it will be possible to create agents from the host, in init functions, step functions, or any host code which is executed between calls to single_iteration().

This needs adding to the documentation.

  • Mention this in section 2.7, indicating that initial XML data could instead be generated by an init function.
  • a new section in chapter 3, detailing the process and functions available (with an example).

Agent Type and Message Partitioning Table (or list)

To add clarity to the documentation about which types of agents can output which types of message would be useful.

I.e

Message Type Continuous Agents Discrete Agents
partitioningNone Yes No
partitioningDiscrete No Yes
partitioningSpatial Yes No

It could just be an explicit statement rather than a table, but a table would add clarity if we have additional messaging types

Document accessing agent array data.

The docs don't appear to mention accessing agent array data on the device at all.

This is a massive oversight which should be resolved.

I.e from the stable marriage example:

woman = get_Man_agent_array_value<int>(agent->preferred_woman, round);

Vector and Unsigned Types

We need to add details about the use of vector and unsigned types for 1.5.X

  • Agent Variables
  • Environmental Variables
  • Message Variables
    • Importantly this does not support vector types, but might support unsigned? @mondus

Graph based communication

Need to document new communication strategy.

  • Section describing it and its purpose
  • How to define a staticGraph (and the limitations)
  • Format for reading graph from disk, with examples
    • XML
    • JSON
    • Including the use of agent arrays, vector types and arrays of vector types.
  • How to define graph based communication

RTD Badge

The linked RTD badge in the readme refers to latest which we have disabled in favour of master / certain branches / tags. This should be updated

Various Updates for 1.5

  • Instrumentation constants
  • Limitations of statically allocated memory (2GB limit on windows) which effects agent populations, message list size and the number of bins available for spatially partitioned messaging.
  • The current Linux build process
  • Step Functions
  • Analytics functions such as reductions
    • Including that these are not available for agent variable arrays
  • Upcoming host-based agent creation (init and step functions)
  • PAUSE_ON_START in visualisation.h

We may wish to:

  • Remove the technical report from the repository? OR Replace the technical report with a pdf of the new documentatiojn
  • Update the README to point to the documentation.

From FLAMEGPU/FLAMEGPU#66

Example Creation documentation

Provide details of:

  • How to manually create a new visual studio project
  • How to manually create a new makefile based project
  • How to create a new example based off an existing example (tools/new_example.py)

Quircks of Discrete Messaging with Different Radii

Discrete Partitioned Messaging with radius 0 returns the value from the individual cell (i.e PedestrianNavigation).

Discrete Partitioned Messaging with radius > 0, i.e. 1 returns the neighbouring 8 cells and not the cell at the centre.

This means that using the same message list for discrete->discrete communication and discrete -> continuous communication doesn't work, and 2 message lists must be used.

This is a limitation in FLAME GPU 1, but will be avoided in FLAME GPU 2, with baked-in self-message ignoring.

RNG

docs/flamegpu/api.rst:467

Nowhere in the docs does it state what range the RNG returns (presumably 0<=x<1. but it's not clear from the code either).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.