@@ -215,22 +215,6 @@ \subsection{The execution of an application using the GraphBLAS C API}
215
215
subgraph of that DAG. An ordered collection of GraphBLAS method calls in program order that
216
216
defines that subgraph for a particular object is the \emph {sequence } for that object.
217
217
218
- \comment {
219
- \glossItem {sequence} A series of contiguous GraphBLAS method calls in a thread,
220
- in program order. An implementation of the GraphBLAS may
221
- reorder or even fuse GraphBLAS methods within a sequence as long as the
222
- definitions of any GraphBLAS object that is later read by an application
223
- are not changed; by `` read'' we mean that values are copied from an
224
- opaque GraphBLAS object into a non-opaque object.
225
-
226
- A sequence begins when a thread calls its first GraphBLAS method either
227
- (1) after it starts executing or (2) after termination of the previous
228
- sequence. In blocking mode, every GraphBLAS method call is its own
229
- sequence, and implicitly terminates it on return. In nonblocking mode,
230
- a sequence is terminated by either (1) a call to {\sf GrB\_ finalize()}
231
- or (2) a call to {\sf GrB\_ wait()}.
232
- }
233
-
234
218
\glossItem {complete} A GraphBLAS object is complete when it can be used in a happens-before relationship
235
219
with a method call that reads the variable on another thread. This concept is used
236
220
when reasoning about memory orders in multithreaded programs. A GraphBLAS object defined on one thread
@@ -240,28 +224,6 @@ \subsection{The execution of an application using the GraphBLAS C API}
240
224
complete after a GraphBLAS method call that writes to that object returns. In nonblocking-mode, an object is complete
241
225
after a call to the {\sf GrB\_ wait()} method with the {\sf GrB\_ COMPLETE} parameter.
242
226
243
- \comment {
244
- A GraphBLAS object is fully defined by the sequence
245
- of method calls that produce the object as an output. In blocking mode,
246
- each method call completes upon return. In non-blocking mode,
247
- the execution of a method call may be deferred. A method call with output
248
- object {\sf obj} is said to be complete in non-blocking mode
249
- when the first {\sf GrB\_ wait(obj)} invoked after it has returned.
250
- A complete method call cannot incur
251
- additional execution time or generate additional errors.}
252
-
253
- \comment {
254
- \glossItem {materialize} To cause the values associated with an object to be
255
- produced and stored
256
- in memory. A GraphBLAS object has been
257
- \emph {materialized } when the computations that implement the mathematical definition
258
- of the object are {\it complete}.
259
- A GraphBLAS object that is never loaded into a non-opaque data structure may
260
- potentially never be materialized. This might happen, for example, if the operations
261
- associated with the object are fused or otherwise changed by the runtime system
262
- that supports the implementation of the GraphBLAS C API.
263
- }
264
-
265
227
\glossItem {materialize} A GraphBLAS object is materialized when it is (1) complete, (2) the computations
266
228
defined by the sequence that define the object have finished (either fully or stopped at an error) and will not consume any
267
229
additional computational resources, and (3) any errors associated with that sequence are available to be read according to the
@@ -508,18 +470,16 @@ \section{GraphBLAS Opaque Objects}
508
470
should be destroyed by a call to {\sf GrB\_ free}. The behavior of a program
509
471
that calls {\sf GrB\_ free} on a pre-defined object is undefined.
510
472
511
- \comment {
512
- This is typically done with one of
513
- the methods that has a `` {\sf \_ new}'' suffix in its name (e.g.,
514
- {\sf GrB\_ Vector\_ new}). If available, an object can also be initialized by
515
- duplicating an existing object with one of the methods that has the
516
- `` {\sf \_ dup}'' suffix in its name (e.g., {\sf GrB\_ Vector\_ dup}). Note that
517
- there are other valid constructor methods included in the API (e.g.,
518
- `` {\sf \_ diag}'' , `` {\sf \_ import}'' , and `` {\sf \_ deserialize}'' matrix
519
- methods). Regardless of the method of construction, any resources associated
520
- with that object can be released (destructed) by a call to the {\sf GrB\_ free}
521
- method when an application is finished with an object.
522
- }
473
+ % This is typically done with one of
474
+ % the methods that has a ``{\sf \_new}'' suffix in its name (e.g.,
475
+ % {\sf GrB\_Vector\_new}). If available, an object can also be initialized by
476
+ % duplicating an existing object with one of the methods that has the
477
+ % ``{\sf \_dup}'' suffix in its name (e.g., {\sf GrB\_Vector\_dup}). Note that
478
+ % there are other valid constructor methods included in the API (e.g.,
479
+ % ``{\sf \_diag}'', ``{\sf \_import}'', and ``{\sf \_deserialize}'' matrix
480
+ % methods). Regardless of the method of construction, any resources associated
481
+ % with that object can be released (destructed) by a call to the {\sf GrB\_free}
482
+ % method when an application is finished with an object.
523
483
524
484
These constructor and destructor methods are the only methods that change
525
485
the value of a handle. Hence, objects changed by these methods are passed
@@ -781,8 +741,6 @@ \subsection{Multi-threaded execution}
781
741
\section {Error Model }
782
742
\label {Sec:ErrorModel }
783
743
784
- % \scott{Should this section also discuss NOT IMPLEMENTED error?} ... No, it doesn't belong here
785
-
786
744
All GraphBLAS methods return a value of type {\sf GrB\_ Info} (an enum) to
787
745
provide information available to the system at the time the method returns.
788
746
The returned value will be one of the defined values shown in
0 commit comments