Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-orbit
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Katerina Roukounaki
cloud-orbit
Commits
97b708ab
Commit
97b708ab
authored
Nov 14, 2014
by
Aggelos Giantsios
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Set a type alias for the statistics
parent
36650a70
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
6 deletions
+8
-6
Sequential.hs
Sequential.hs
+3
-3
Table.hs
Table.hs
+5
-3
No files found.
Sequential.hs
View file @
97b708ab
...
...
@@ -3,7 +3,7 @@
--
module
Sequential
(
orbit
)
where
import
Table
(
Freq
,
VTable
,
Vertex
,
get_freq
,
freq_to_stat
,
is_member
,
insert
,
new
,
to_list
)
import
Table
(
Freq
,
Stats
,
VTable
,
Vertex
,
get_freq
,
freq_to_stat
,
is_member
,
insert
,
new
,
to_list
)
import
Data.Hashable
(
hash
)
import
Data.Dequeue
(
BankersDequeue
,
fromList
,
popFront
,
pushBack
)
import
OrbitUtils
(
now
)
...
...
@@ -24,7 +24,7 @@ type Conf = ([Vertex -> Vertex], Int)
-- where the hash table is of size TableSize.
-- The function returns a pair consisting of the computed orbit and a singleton
-- list of statistics (mainly runtime and fill degree of the table).
orbit
::
[
Vertex
->
Vertex
]
->
[
Vertex
]
->
Int
->
([
Vertex
],
[
[(
String
,
String
)]
])
orbit
::
[
Vertex
->
Vertex
]
->
[
Vertex
]
->
Int
->
([
Vertex
],
[
Stats
])
orbit
gs
xs
tableSize
=
(
orbit
,
[
stat
])
-- assemble static configuration
where
staticMachConf
=
mk_static_mach_conf
gs
tableSize
...
...
@@ -91,7 +91,7 @@ get_table_size :: Conf -> Int
get_table_size
staticMachConf
=
snd
staticMachConf
-- produce readable statistics
seq_stats
::
Int
->
Freq
->
Int
->
[(
String
,
String
)]
seq_stats
::
Int
->
Freq
->
Int
->
Stats
seq_stats
elapsedTime
frequency
vertsRecvd
=
(
"wall_time"
,
show
elapsedTime
)
:
(
"vertices_recvd"
,
show
vertsRecvd
)
:
freq_to_stat
frequency
Table.hs
View file @
97b708ab
...
...
@@ -2,6 +2,7 @@
-- orbit-int hash table (storing vertices on a worker)
--
module
Table
(
Freq
,
Stats
,
VTable
,
Vertex
,
new
...
...
@@ -26,6 +27,7 @@ import Data.Array (Array, elems, listArray, (!), (//))
type
Freq
=
[
Int
]
type
Vertex
=
Int
type
VTable
=
Array
Int
[
Vertex
]
type
Stats
=
[(
String
,
String
)]
-- Note: Hash tables have a fixed number of slots but each slot can store
-- a list of vertices. The functions is_member/3 and insert/3
...
...
@@ -101,7 +103,7 @@ sum_freqs fs = foldl (flip sum_freqs2) [] fs
-- freq_to_stat produces a readable statistics from a table fill frequency;
-- the input frequency F is itself part of the statistics
freq_to_stat
::
Freq
->
[(
String
,
String
)]
freq_to_stat
::
Freq
->
Stats
freq_to_stat
frequency
=
[
(
"freq"
,
show
frequency
)
,
(
"size"
,
show
$
freq_to_vertices
frequency
)
,
(
"slots"
,
show
$
freq_to_slots
frequency
)
...
...
@@ -116,7 +118,7 @@ freq_to_stat frequency = [ ("freq", show frequency)
-- freq_from_stat extracts a table fill frequency from a statistics Stat
-- (assuming Stat was produced by freq_to_stat/1, otherwise returns []);
freq_from_stat
::
[(
String
,
String
)]
->
Freq
freq_from_stat
::
Stats
->
Freq
freq_from_stat
stat
=
case
"freq"
`
lookup
`
stat
of
Just
val
->
read
val
::
[
Int
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment