Generation

Usage

use Generation;
param GenerationSeedOffset = 3735928559
config const GenerationUseAggregation = true
record WorkInfo
var rngSeed: int
var rngOffset: int
var numOperations: int
proc calculateWork(numInclusions, targetLoc = Locales)
proc weightedRandomSample(items, probabilities, randValue)
proc distributedHistogram(probTable, numRandoms, targetLocales)
proc histogram(probabilities, numRandoms)
proc generateErdosRenyiSMP(graph, probability, vertexDomain, edgeDomain, couponCollector = true)
proc generateErdosRenyi(graph, probability, verticesDomain = graph.verticesDomain, edgesDomain = graph.edgesDomain, couponCollector = true, targetLocales = Locales)
proc generateChungLuSMP(graph, verticesDomain, edgesDomain, desiredVertexDegrees, desiredEdgeDegrees, inclusionsToAdd)
proc generateChungLuPreScanSMP(graph, verticesDomain, edgesDomain, vertexScan, edgeScan, inclusionsToAdd)
record DynamicArray
var dom = {0..0}
var arr: [dom] int
proc init()
proc init=(other)
proc this(idx: integral) const ref
proc generateChungLu(graph, vDegSeq: [?vDegSeqDom] int, eDegSeq: [?eDegSeqDom] int, inclusionsToAdd: int(64), verticesDomain = graph.verticesDomain, edgesDomain = graph.edgesDomain, targetLoc = Locales)

Generates a graph from the desired vertex and edge degree sequence.

Arguments:
  • graph – Mutable graph to generate.
  • vDegSeq – Vertex degree sequence. Must be sorted.
  • eDegSeq – HyperEdge degree sequence. Must be sorted.
  • inclusionsToAdd – Number of edges to create between vertices and hyperedges.
  • verticesDomain – Subset of vertices to generate edges between. Defaults to the entire set of vertices.
  • edgesDomain – Subset of hyperedges to generate edges between. Defaults to the entire set of hyperedges.
  • targetLoc – Locales to perform computation over. Defaults to Locales, which includes all locales.
proc generateChungLuAdjusted(graph, num_vertices, num_edges, desired_vertex_degrees, desired_edge_degrees)
proc computeAffinityBlocks(dV, dE, mV, mE)
proc _round(x: real): int
proc generateBTER(vd: [?vdDom], ed: [?edDom], vmc: [?vmcDom], emc: [?emcDom], targetLocales = Locales)

Block Two-Level Erdos Renyi