A data parallel agent-based modelling framework based on functional reactive programming