- May 29, 2019
-
-
Fix a memory error triggered on the GPU when assertions were enabled. An assertion was testing a value in shared memory, that should have been stored in host memory.
-
akuesters authored
Python: mpi4py communicators as first class citizens
-
- May 23, 2019
-
-
Benjamin Cumming authored
-
Benjamin Cumming authored
-
* Replace ionKind enumerations with corresponding string values. * Rename `ion.hpp` as `ion_info.hpp`. * Re-jig 'nonspecific' current handling in modcc: make explicit the external source of the corresponding current variable, and treat as non-indexed those locals with an external variable that has no data source, as opposed to special-casing the `ionKind::nonspecific` value. * Add another field in ion dependency information that captures a write to an ionic reversal potential. Fixes #748.
-
Benjamin Cumming authored
-
+ Included conversion from `pybind11::object()` to `arb::util::optional` for `arbor.proc_allocation().gpu_id` and exception handling for `arbor.context(mpi=comm)`. + cleaned-up `test_event_generator.py` + for discussion: How do we want to handle the strings? Include them in appropriate `.cpp` or collect them in `strings.c/hpp`?
-
- May 20, 2019
-
-
Sam Yates authored
Fixes #746. * Make `one_probe` an `inline` function rather than `static inline` in order to work around a linker issue (see issue #746).
-
- May 17, 2019
-
-
Nora Abi Akar authored
* Fixes segmentation faults; output compiler errors instead. * Consume units if provided in function/procedure prototypes or after function prototype. * Consume UNITSON/UNITSOFF. * Consume and store VALENCE as an ion property.
-
- May 09, 2019
-
-
Wrapped the following C++ features in Python: - Identifiers (`cell_member`) + according tests - `event_generator` and schedules (`regular_schedule`, `explicit_schedule`, `poisson_schedule`) + according tests
-
- May 07, 2019
-
-
Changes implicit solve step from: > solve (c/δt + L) v' = c/δt v - J to > solve (c/δt + g + L)v' = (c/δt +g) v - J where _c_ is capacitance, _g_ is membrane conductance, _J_ is membrane current. * Compute conductivity contribution for mechanisms from symbolic d/dv of current contribution (extracted from linearity test.) * Add new modcc 'source kind' for conductivity; tie to `vec_g_`. * Add conductivity field to fvm shared state. * Include conductivity in matrix assemblies for solution. Fixes #633.
-
- Apr 26, 2019
-
-
Benjamin Cumming authored
Add citation information to the readme.
-
Benjamin Cumming authored
Fix bug in CUDA reduce_by_key implementation on V100 or later GPUs. The bug was not triggered for current use cases of the algorithm in Arbor, though it will be a problem when more than one reduction is to be performed in a single kernel invocation, which is required for ac cumulating both current and conductance values. * Use warp-synchronous aware operations to avoid problems on V100. * Simplify reduction kernel. * Rename `run_length` ancillary data structure to `key_set_pos`. * Add unit tests that trigger the incorrect behaviour observed in #736. Fixes #736.
-
- Apr 25, 2019
-
-
akuesters authored
* Add value_type and emplace method to the optional class to support automatic conversion of arb::util::optional in python. * Add unit test for arb::util::optional::emplace.
-
- Apr 03, 2019
-
-
- Mar 15, 2019
-
-
Python 3.6 is tested (serial and mpi), in particular: - 3.6.3 on linux with a virtualenv, - 3.6.5 as downgrade from 3.7 on osx as in https://stackoverflow.com/questions/52584907/how-to-downgrade-python-from-3-7-to-3-6?rq=1 (other solutions did not work) Fixes #715
-
- Mar 14, 2019
-
-
* Rename `arb:simd::simd_detail` namespace to `arb::simd::detail`. * Update SIMD documentation to suit. Fixes #468.
-
- Mar 06, 2019
-
-
Sam Yates authored
Fixes #717. * Move time interval update step after threshold check.
-
- Mar 05, 2019
-
-
Benjamin Cumming authored
-
- Mar 04, 2019
-
-
-
Benjamin Cumming authored
Rename mc_cell to cable_cell, cable1d_neuron to cable, and lif_neuron to lif in public API. Fixes #701
-
Add gap junctions and improve general model overview in docs. * Replace Arbor Model::Common Types with Arbor Model::Concepts, that introduces the concept of cells, connections and gap junctions. * Add gap junction documentation to cpp:recipe * Document the implicit rule forcing cells connected by gap junctions to be in the same cell group. * Add documentation that discusses core concepts in Arbor models.
-
* Remove data/ directory, contents as they are not used now in Arbor.
-
Remove the miniapp example. * Remove the miniapp source from example/miniapp. * Remove references to miniapp from CMake files. * Remove miniapp from the travis tests. * Fix unused variable warning in brunel miniapp.
-
- Mar 01, 2019
-
-
Adds a small self contained example demonstrating the use of SWC and morphology specifications, to fill a void that will be left when the miniapp is removed. * Adds `single-cell` example, together with short README and example SWC file. * Removes redundant constructors for context objects. * Corrects and simplifies some of the context comments. * Add a method to `mc_segment` for calculating (approximately) a lower bound on the length constant of that segment for a given frequency, for use with a NEURON 'd-lambda' style discretization rule.
-
Remove old code and comments from Python config code.
-
Fixes #700 Usage in python as: ``` >>>import arbor >>>arbor.config() {'mpi': True, 'mpi4py': True, 'gpu': False, 'version': '0.1.1-dev'} >>>d = arbor.config() >>>arbor.print_config(d) Arbor's configuration: mpi : True mpi4py : True gpu : False version: 0.1.1-dev ```
-
Benjamin Cumming authored
Update Hardware API documentation * split the domain decomposition and hardware API docs into separate pages * update hardware API to reflect new *libarbor* and *libarborenv* * add basic documentation for `optional`, `any` and `unique_any` types.
-
- Feb 27, 2019
-
-
Benjamin Cumming authored
Update the installation guide to reflect the latest supported tool, compiler and library versions. Remove the Python docs, because they documented features that have not been implemented yet. The Python docs can be added incrementally as features are implemented. Start work on oupdating the documenetation for hardware interfaces and domain decomposition.
-
- Feb 26, 2019
-
-
* Add SIMD neon implementation for aarch64. * Update unit tests to suit.
-
Allow distinct point processes with the same linear dynamics to be combined if they reside in the same CV after discretization. * Add `linear` flag to `mechinfo` struct. * Add a linearity test to `modcc` that determines if a point process is a suitable candidate for coalescing: state and current updates must be linear, homogeneous functions of the state variables; state change on an event arrival (`net_receive`) must be independent of current state values. * Add `mechanism_state_table()` inquiry function to backend mechanism interface. * Add a field `multiplicity` to `fvm_mechanism_config` that accounts for merged synapse instances, and a corresponding `multiplicity` field in `mechanism::layout`. * Merge linear synapses of the same type in `fvm_build_mechanism_data` if they have the same parameters. * Add global mc_cell property `coalesce_synapses` which enables or disables the merging of linear synapses at run time. * Rename virtual `nrn_init()` interface funct...
-
Update documentation for Python. splits the conceptual model ideas from the C++ docs into their own section has C++ and Python docs for recipes, domain decomposition, etc. fixes #667 Added the following documentation (structure): GETTING STARTED: Installing Arbor/Requirements/Optional Requirements/Python Installing Arbor/Building and Installing Arbor/Python Front End MODEL BASICS: Overview Common Types Recipes Domain Decomposition Simulations PYTHON: Overview Common Types Recipes Domain Decomposition Simulations DEVELOPERS: Python Profiler Python Unit Testing GETTING STARTED has two added sections of optional requirements using python and how to build the python front end. MODEL BASICS describes Arbor's concepts in general (independent of programming language), thus general information on concepts in C++ API was moved here/ added. PYTHON describes Arbor's pyth...
-
First step towards the Python front end. This commit sets up the structure of the python implementation * directory structure * git submodule for pybind11 * best practices for making bindings with pybind11 * unit testing for the python front end It implements the following features in the Python front end * execution contexts * gpu detection * thread count detection * MPI initialization helpers. Fixes #667.
-
- Feb 25, 2019
-
-
* Bump minimum CMake version to 3.9. Fixes #691.
-
- Feb 18, 2019
-
-
Fixes #683. * Distinguish between per-cell matrix solver and per-'integration domain' state in the FVM back-end, adding new index for FVM back-ends mapping CVs to integration domain index. * Move to one event queue per integration domain, avoiding extra logic for synchronisation of times across gap-junction connected cells. This requires a merging of event lanes in `mc_cell_group` when constructing the staged events in the multi-event queue. * Add synapses to gap junction example.
-
- Feb 06, 2019
-
-
Sam Yates authored
-
Add support for gap junctions in mc_cells, modelled as a conductance between 2 cell CVs. Gap junctions act as additional current sources on the CVs, as opposed to participating in the implicit voltage integration step. Cells connected via gap junctions must be in the same cell group as determined by the provided domain decomposition. * Extend `mc_cell` to hold a list of gap junction locations. * Add `num_gap_junction_sites()` and `gap_junctions_on()` methods to the `recipe` interface. * Add `gather_gids()` collective operation to distributed context interface and implementations. * Extend `partition_load_balance()` functionality to ensure that cells connected by gap junctions are put in the same groups. * Permute cells within `mc_cell_group` so that cells connected by gap junctions are contiguous. * Add gap junction information to `multicore::shared_state` and `gpu::shared_state`, together with `add_gj_current()` method that computes GJ current contributions. * Ad...
-
- Feb 05, 2019
-
-
Sam Yates authored
* Add unit test for event delivery pathing. * Temporarily disable GJ-specific test pending GJ PR.
-
Sam Yates authored
Somewhere along the line, some extensions were made to `cell_member_type` to facilitate some arithmetic on the `gid` field. These operations tend to blur the distinction between a gid and a `cell_member_type` value, and are besides used only in a couple of places. * Remove `cell_member_type` arithmetic with `gid` methods/functions. * Replace usage of these short cuts with explicit use of `gid` field in `dry_run_context_impl` and `symmetric_recipe`.
-
- Feb 04, 2019
-
-
Sam Yates authored
Implement a basic glob routine, supporting a subset of POSIX behaviour (e.g. no character classes), as a fallback for platforms such as Android which do not include it in their libc. * Add CMake configuration option `ARB_USE_POSIX_GLOB`, defaults to `ON`, that determines if the fallback implementation is used or not. * Extend `sup::path` functionality to add directory iterators and a couple more path manipulation routines, again following the C++17 `std::filesystem` interface. * Add an NFA pattern matcher `glob_basic_match` and file system `glob_basic` function; the latter is abstracted over a file system provider object, primarily for testing/mocking purposes. * Add unit tests for new `sup::path` functionality and for `glob_basic`. FIxes #181.
-