YAP 7.1.0
Parallelism in YAP

There has been a sizeable amount of work on an or-parallel implementation for YAP, called YAPOr More...

Detailed Description

There has been a sizeable amount of work on an or-parallel implementation for YAP, called YAPOr

Most of this work has been performed by Ricardo Rocha In this system parallelism is exploited implicitly by running several alternatives in or-parallel This option can be enabled from the configure script or by checking the system's Makefile

YAPOr* is still a very experimental system, going through rapid development The following restrictions are of note:

We expect that some of these restrictions will be removed in future releases


Class Documentation

◆ or_frame

struct or_frame

Definition at line 61 of file or.structs.h.

Public Attributes

lockvar lock
 
yamopalternative
 
volatile bitmap members
 
choiceptr node
 
struct or_framenearest_livenode
 
int depth
 
choiceptr pending_prune_cp
 
volatile int pending_prune_ltt
 
struct or_framenearest_leftnode
 
struct query_goal_solution_framequery_solutions
 
struct or_framenext
 

Member Data Documentation

◆ alternative

yamop* alternative

Definition at line 63 of file or.structs.h.

◆ depth

int depth

Definition at line 72 of file or.structs.h.

◆ lock

lockvar lock

Definition at line 62 of file or.structs.h.

◆ members

volatile bitmap members

Definition at line 64 of file or.structs.h.

◆ nearest_leftnode

struct or_frame* nearest_leftnode

Definition at line 79 of file or.structs.h.

◆ nearest_livenode

struct or_frame* nearest_livenode

Definition at line 70 of file or.structs.h.

◆ next

struct or_frame* next

Definition at line 91 of file or.structs.h.

◆ node

choiceptr node

Definition at line 68 of file or.structs.h.

◆ pending_prune_cp

choiceptr pending_prune_cp

Definition at line 76 of file or.structs.h.

◆ pending_prune_ltt

volatile int pending_prune_ltt

Definition at line 78 of file or.structs.h.

◆ query_solutions

struct query_goal_solution_frame* query_solutions

Definition at line 80 of file or.structs.h.

◆ query_goal_solution_frame

struct query_goal_solution_frame

Definition at line 135 of file or.structs.h.

Public Attributes

volatile int ltt
 
struct query_goal_answer_framefirst
 
struct query_goal_answer_framelast
 
struct query_goal_solution_framenext
 

Member Data Documentation

◆ first

struct query_goal_answer_frame* first

Definition at line 137 of file or.structs.h.

◆ last

Definition at line 138 of file or.structs.h.

◆ ltt

volatile int ltt

Definition at line 136 of file or.structs.h.

◆ next

Definition at line 139 of file or.structs.h.

◆ query_goal_answer_frame

struct query_goal_answer_frame

Definition at line 153 of file or.structs.h.

Public Attributes

Term answer
 
struct query_goal_answer_framenext
 

Member Data Documentation

◆ answer

Term answer

Definition at line 154 of file or.structs.h.

◆ next

Definition at line 155 of file or.structs.h.

Macro Definition Documentation

◆ AnsFr_answer

#define AnsFr_answer (   X)    ((X)->answer)

Definition at line 158 of file or.structs.h.

◆ AnsFr_next

#define AnsFr_next (   X)    ((X)->next)

Definition at line 159 of file or.structs.h.

◆ Get_OrFr_pend_prune_cp

#define Get_OrFr_pend_prune_cp (   X)    ((X)->pending_prune_cp)

Definition at line 112 of file or.structs.h.

◆ GetOrFr_node

#define GetOrFr_node (   X)    ((X)->node)

Definition at line 102 of file or.structs.h.

◆ OrFr_alternative

#define OrFr_alternative (   X)    ((X)->alternative)

Definition at line 95 of file or.structs.h.

◆ OrFr_depth

#define OrFr_depth (   X)    ((X)->depth)

Definition at line 106 of file or.structs.h.

◆ OrFr_lock

#define OrFr_lock (   X)    ((X)->lock)

Definition at line 94 of file or.structs.h.

◆ OrFr_members

#define OrFr_members (   X)    ((X)->members)

Definition at line 96 of file or.structs.h.

◆ OrFr_nearest_leftnode

#define OrFr_nearest_leftnode (   X)    ((X)->nearest_leftnode)

Definition at line 116 of file or.structs.h.

◆ OrFr_nearest_livenode

#define OrFr_nearest_livenode (   X)    ((X)->nearest_livenode)

Definition at line 105 of file or.structs.h.

◆ OrFr_nearest_suspnode

#define OrFr_nearest_suspnode (   X)    ((X)->nearest_suspension_node)

Definition at line 126 of file or.structs.h.

◆ OrFr_next

#define OrFr_next (   X)    ((X)->next)

Definition at line 127 of file or.structs.h.

◆ OrFr_next_on_stack

#define OrFr_next_on_stack (   X)    ((X)->next)

Definition at line 123 of file or.structs.h.

◆ OrFr_node

#define OrFr_node (   X)    ((X)->node)

Definition at line 101 of file or.structs.h.

◆ OrFr_owners

#define OrFr_owners (   X)    ((X)->number_owners)

Definition at line 119 of file or.structs.h.

◆ OrFr_pend_prune_cp

#define OrFr_pend_prune_cp (   X)    ((X)->pending_prune_cp)

Definition at line 111 of file or.structs.h.

◆ OrFr_pend_prune_ltt

#define OrFr_pend_prune_ltt (   X)    ((X)->pending_prune_ltt)

Definition at line 115 of file or.structs.h.

◆ OrFr_qg_solutions

#define OrFr_qg_solutions (   X)    ((X)->query_solutions)

Definition at line 117 of file or.structs.h.

◆ OrFr_suspensions

#define OrFr_suspensions (   X)    ((X)->suspensions)

Definition at line 125 of file or.structs.h.

◆ OrFr_tg_solutions

#define OrFr_tg_solutions (   X)    ((X)->table_solutions)

Definition at line 118 of file or.structs.h.

◆ Set_OrFr_pend_prune_cp

#define Set_OrFr_pend_prune_cp (   X,
 
)    ((X)->pending_prune_cp = (V))

Definition at line 113 of file or.structs.h.

◆ SetOrFr_node

#define SetOrFr_node (   X,
 
)    ((X)->node = V)

Definition at line 103 of file or.structs.h.

◆ SolFr_first

#define SolFr_first (   X)    ((X)->first)

Definition at line 143 of file or.structs.h.

◆ SolFr_last

#define SolFr_last (   X)    ((X)->last)

Definition at line 144 of file or.structs.h.

◆ SolFr_ltt

#define SolFr_ltt (   X)    ((X)->ltt)

Definition at line 142 of file or.structs.h.

◆ SolFr_next

#define SolFr_next (   X)    ((X)->next)

Definition at line 145 of file or.structs.h.

Macros

#define OrFr_lock(X)   ((X)->lock)
 
#define OrFr_alternative(X)   ((X)->alternative)
 
#define OrFr_members(X)   ((X)->members)
 
#define OrFr_node(X)   ((X)->node)
 
#define GetOrFr_node(X)   ((X)->node)
 
#define SetOrFr_node(X, V)   ((X)->node = V)
 
#define OrFr_nearest_livenode(X)   ((X)->nearest_livenode)
 
#define OrFr_depth(X)   ((X)->depth)
 
#define OrFr_pend_prune_cp(X)   ((X)->pending_prune_cp)
 
#define Get_OrFr_pend_prune_cp(X)   ((X)->pending_prune_cp)
 
#define Set_OrFr_pend_prune_cp(X, V)   ((X)->pending_prune_cp = (V))
 
#define OrFr_pend_prune_ltt(X)   ((X)->pending_prune_ltt)
 
#define OrFr_nearest_leftnode(X)   ((X)->nearest_leftnode)
 
#define OrFr_qg_solutions(X)   ((X)->query_solutions)
 
#define OrFr_tg_solutions(X)   ((X)->table_solutions)
 
#define OrFr_owners(X)   ((X)->number_owners)
 
#define OrFr_next_on_stack(X)   ((X)->next)
 
#define OrFr_suspensions(X)   ((X)->suspensions)
 
#define OrFr_nearest_suspnode(X)   ((X)->nearest_suspension_node)
 
#define OrFr_next(X)   ((X)->next)
 
#define SolFr_ltt(X)   ((X)->ltt)
 
#define SolFr_first(X)   ((X)->first)
 
#define SolFr_last(X)   ((X)->last)
 
#define SolFr_next(X)   ((X)->next)
 
#define AnsFr_answer(X)   ((X)->answer)
 
#define AnsFr_next(X)   ((X)->next)
 

Typedefs

typedef struct or_frameor_fr_ptr
 
typedef struct query_goal_solution_frameqg_sol_fr_ptr
 
typedef struct query_goal_answer_frameqg_ans_fr_ptr