aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Sato <shinnya.sato@gmail.com>2021-10-24 23:27:36 +0900
committerShinya Sato <shinnya.sato@gmail.com>2021-10-24 23:27:36 +0900
commit54e9b8fdc3c6d1e659c4c78957ff1c11acc1c0ea (patch)
tree09dd844e84c2bdf809ec5cc72f22ed720d290788
parentc5480f95ba1bbf438f19fae01e9bd47e73181ec2 (diff)
downloadinpla-54e9b8fdc3c6d1e659c4c78957ff1c11acc1c0ea.tar.gz
inpla-54e9b8fdc3c6d1e659c4c78957ff1c11acc1c0ea.zip
Update README.md
-rw-r--r--README.md30
1 files changed, 16 insertions, 14 deletions
diff --git a/README.md b/README.md
index db985bc..00793ee 100644
--- a/README.md
+++ b/README.md
@@ -8,28 +8,30 @@ Inpla is a multi-threaded parallel interpreter of interaction nets. Once you wri
![speedup-ratio](pic/benchmark_reuse.png)
-- Comparison with other implementations: Haskell (GHC version 8.10.7), Standard ML v110.74 (interpreter mode) and Python 3.8.5 in execution time. There are scripts in the `comparison` directory.
- - Execution time in second on Linux PC (Core i7-9700 (8 threads, no Hyper-threading), 16GB memory). The fastest one is shown with bold style in the table.
- - Inpla*n* and Inpla*n*_**r** mean *n* threads without/with reuse-annotated execution, respectively.
- - `ack(3,11)` is computation of Ackermann function. There is a blank in Python execution due to stack size limitation.
- - `fib 38` is computation to get the 38th Fibonacci number.
- - `bsort` *n*, `isort` *n*, `qsort` *n* and `msort` *n* are computation of bubble sort, insertion sort, quick sort and merge sort for random *n*-element list, respectively.
-
| | Haskell | SML | Python | Inpla1 | Inpla1_r | Inpla7 | Inpla7_r |
| -------------- | :------: | :------: | :----: | :----: | :------: | :----: | :------: |
-| `ack(3,11)` | 2.31 | **0.41** | - | 4.76 | 4.36 | 0.98 | 0.88 |
-| `fib 38` | 1.60 | **0.26** | 8.49 | 3.59 | 3.56 | 0.56 | 0.54 |
-| `bsort 40000` | 34.81 | 11.17 | 76.72 | 22.85 | 18.40 | 5.53 | **2.94** |
-| `isort 40000` | **0.02** | 2.97 | 36.63 | 10.59 | 8.74 | 2.59 | 1.43 |
-| `qsort 800000` | **0.15** | 1.16 | 97.30 | 1.85 | 1.55 | 0.76 | 0.41 |
-| `msort 800000` | **0.46** | 1.00 | 98.27 | 1.18 | 1.34 | 0.65 | 0.49 |
+| ack(3,11) | 2.31 | **0.41** | - | 4.76 | 4.36 | 0.98 | 0.88 |
+| fib 38 | 1.60 | **0.26** | 8.49 | 3.59 | 3.56 | 0.56 | 0.54 |
+| bsort 40000 | 34.81 | 11.17 | 76.72 | 22.85 | 18.40 | 5.53 | **2.94** |
+| isort 40000 | **0.02** | 2.97 | 36.63 | 10.59 | 8.74 | 2.59 | 1.43 |
+| qsort 800000 | **0.15** | 1.16 | 97.30 | 1.85 | 1.55 | 0.76 | 0.41 |
+| msort 800000 | **0.46** | 1.00 | 98.27 | 1.18 | 1.34 | 0.65 | 0.49 |
+
+- **Comparison in execution time** with other implementations: **Haskell** (GHC version 8.10.7), **Standard ML** v110.74 (interpreter mode) and **Python** 3.8.5 in execution time.
+ - The above table contains execution time in second on average of ten times execution by using Linux PC (Core i7-9700 (8 threads, no Hyper-threading), 16GB memory). The fastest one is shown with bold style. There are scripts in the `comparison` directory.
+ - Inpla*n* and Inpla*n*_**r** mean *n* threads without/with reuse-annotated execution, respectively.
+ - "ack(3,11)" is computation of Ackermann function. There is a blank in Python due to stack size limitation error.
+ - "fib 38" is computation to get the 38th Fibonacci number.
+ - "bsort *n*", "isort *n*", "qsort *n*" and "msort *n*" are computation of bubble sort, insertion sort, quick sort and merge sort for random *n*-element lists, respectively.
+
+
### Feature of Version 0.4.2
- Line edit supports multi-line inputs.
### Feature of Version 0.4.1
- Integer numbers can be written the same as one of the first-class objects.
-- Interaction rules can re-allocate heaps of the rule agents to agents in nets. This re-allocation is specified by modifications such as (\*L), (\*R), called reuse annotation [1], to agents in nets. This re-allocation can improve execution performance in parallel.
+- Interaction rules can re-allocate heaps of the rule agents to agents in nets. This re-allocation is specified by modifications such as (\*L), (\*R), called reuse annotation [1], to agents in nets. This re-allocation can improve execution performance in parallel. This is an experimental, thus in future version these should be decided automatically, so please do not care so much.
- Weak reduction strategy is supported. It turns on by invoked with ```-w``` option, and then only connections that have living names are evaluated.
- Nested guards in conditional rules are supporeted.