“…Our use of this term is more abstract as we approach the algorithm from the perspective of capturing its specification, which may include concurrent operations but independently of any implementation issues, which make the algorithm non-portable. We believe that low-level solutions are required in order to eliminate, as far as is possible, the experimentation from algorithm engineering but this requires systems to be designed from the ground upwards, namely from the processor's ISA, which must abstract and embed explicit concurrency and manage this in a dynamic manner [6]. We will return to this in due course (see Section 5).…”