Re: ARC model specified in spinroot/promela
- Reply: Mathew\, Cherry G.*: "Re: ARC model specified in spinroot/promela"
- In reply to: Mathew\, Cherry G.*: "Re: ARC model specified in spinroot/promela"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 04 Sep 2023 19:47:27 UTC
Am 2023-09-04 12:49, schrieb Mathew, Cherry G.*:
>>>>>> Mathew, Cherry G * <c@bow.st> writes:
>
> [...]
>
> > So there's room for improvement in my Makefile to:
>
> > 1) Explore multithreaded/CPU
> > 2) Understand state space explosion scale - it is exponential to
> > the number of processes, I've fixed it to run in a loop - will
> > report back once I have good progress also with the model
> > extraction part.
> > 3) My model has errors - I'm glad to see that the error reporting
> > is the same in my new optimised loop, as in the RAM hungry
> version
> > you ran.
>
> > Thanks once again - this is very helpful. I will report back once
> > I have more progress.
>
> Hi Again,
>
> So just wanted to report back with a patch (absolute patch, not
> relative,
> so please nuke your existing arc/ if you tried the old one and apply in
> a clean new subdirectory) on the following:
# make spin-run
cp arc.pml model #mimic modex
cat model > spinmodel.pml;cat arc.drv >> spinmodel.pml;cat arc.inv >>
spinmodel.pml;
spin -am spinmodel.pml
ltl ltl_0: (((((((((<> ([] ((_nr_pr==1)))) && ([]
(((((len(T1.item_list)+len(B1.item_list))+len(T2.item_list))+len(B2.item_list))<=(2*64)))))
&& ([] (((len(T1.item_list)+len(B1.item_list))<=64)))) && ([]
(((len(T2.item_list)+len(B2.item_list))<(2*64))))) && ([]
(((len(T1.item_list)+len(T2.item_list))<=64)))) && ([] ((!
(((((len(T1.item_list)+len(B1.item_list))+len(T2.item_list))+len(B2.item_list))<64)))
|| (((len(B1.item_list)==0)) && ((len(B2.item_list)==0)))))) && ([] ((!
(((((len(T1.item_list)+len(B1.item_list))+len(T2.item_list))+len(B2.item_list))>=64)))
|| (((len(T1.item_list)+len(T2.item_list))==64))))) && ([] ((p<=64))))
&& (<> (((len(T1.item_list)==p)) && ((len(T2.item_list)==(64-p)))))) &&
(<> ((p>0)))
cc -DVECTORSZ=65536 -o pan pan.c
./pan -a #Generate arc.pml.trail on error
error: max search depth too small
(Spin Version 6.5.0 -- 1 July 2019)
+ Partial Order Reduction
Full statespace search for:
never claim + (ltl_0)
assertion violations + (if within scope of claim)
acceptance cycles + (fairness disabled)
invalid end states - (disabled by never claim)
State-vector 2124 byte, depth reached 9999, errors: 0
1 states, stored
11 states, matched
12 transitions (= stored+matched)
109989 atomic steps
hash conflicts: 0 (resolved)
Stats on memory usage (in Megabytes):
0.002 equivalent memory usage for states (stored*(State-vector
+ overhead))
12.456 actual memory usage for states
128.000 memory used for hash table (-w24)
0.534 memory used for DFS stack (-m10000)
5.686 memory lost to fragmentation
140.500 total actual memory usage
unreached in init
spinmodel.pml:80, state 28, "D_STEP80"
spinmodel.pml:80, state 53, "D_STEP80"
spinmodel.pml:154, state 70, "B1.item_list?_"
spinmodel.pml:80, state 79, "D_STEP80"
spinmodel.pml:90, state 85, "D_STEP90"
spinmodel.pml:78, state 86,
"(((len(T1.item_list)!=0)&&((len(T1.item_list)>p)||(B2.item_list??[eval(x[x_iid].iid)]&&(len(T1.item_list)==p)))))"
spinmodel.pml:78, state 86, "else"
spinmodel.pml:73, state 88, "D_STEP73"
spinmodel.pml:159, state 90, "assert((len(B1.item_list)==0))"
spinmodel.pml:160, state 94, "D_STEP160"
spinmodel.pml:152, state 95, "((len(T1.item_list)<64))"
spinmodel.pml:152, state 95, "else"
spinmodel.pml:183, state 100, "B2.item_list?_"
spinmodel.pml:198, state 128, "(1)"
spinmodel.pml:268, state 155, "-end-"
(13 of 155 states)
unreached in claim ltl_0
_spin_nvr.tmp:70, state 108, "-end-"
(1 of 108 states)
pan: elapsed time 0.164 seconds
pan: rate 6.0952381 states/second
No trail file generated...
Bye,
Alexander.
--
http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.org netchild@FreeBSD.org : PGP 0x8F31830F9F2772BF