{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "using MetagraphOptimization\n", "using BenchmarkTools\n", "\n", "Threads.nthreads()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Graph:\n", " Nodes: Total: 131069, DataTask: 65539, ComputeTaskQED_Sum: 1, \n", " ComputeTaskQED_V: 35280, ComputeTaskQED_S2: 5040, ComputeTaskQED_U: 9, \n", " ComputeTaskQED_S1: 25200\n", " Edges: 176419\n", " Total Compute Effort: 549370.0\n", " Total Data Transfer: 1.0645344e7\n", " Total Compute Intensity: 0.05160659909158408\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "machine = get_machine_info()\n", "model = QEDModel()\n", "process = parse_process(\"ke->kkkkkke\", model)\n", "\n", "inputs = [gen_process_input(process) for _ in 1:1e3];\n", "graph = gen_graph(process)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Graph:\n", " Nodes: Total: 14783, DataTask: 7396, ComputeTaskQED_Sum: 1, \n", " ComputeTaskQED_V: 1819, ComputeTaskQED_S2: 5040, ComputeTaskQED_U: 9, \n", " ComputeTaskQED_S1: 518\n", " Edges: 26672\n", " Total Compute Effort: 77102.0\n", " Total Data Transfer: 5.063616e6\n", " Total Compute Intensity: 0.015226668056977465\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "optimizer = ReductionOptimizer()\n", "\n", "optimize_to_fixpoint!(optimizer, graph)\n", "graph" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Calculated 15537.0 results/s, 1295.0 results/s per thread for QED Process: 'ke->kkkkkke' (12 threads)\n" ] } ], "source": [ "compute_compton_reduced = get_compute_function(graph, process, machine)\n", "outputs = [zero(ComplexF64) for _ in 1:1e6]\n", "\n", "bench_result = @benchmark begin\n", " Threads.@threads :static for i in eachindex(inputs)\n", " outputs[i] = compute_compton_reduced(inputs[i])\n", " end\n", "end\n", "\n", "rate = length(inputs) / (mean(bench_result.times) / 1.0e9)\n", "rate_per_thread = rate / Threads.nthreads()\n", "println(\"Calculated $(round(rate)) results/s, $(round(rate_per_thread)) results/s per thread for $(process) ($(Threads.nthreads()) threads)\")" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.9.4", "language": "julia", "name": "julia-1.9" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.9.4" } }, "nbformat": 4, "nbformat_minor": 4 }