{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from psyclone.parse.algorithm import parse\n",
"_, inv_info = parse(\"shallow_alg.f90\", api=\"gocean1.0\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from psyclone.psyGen import PSyFactory, TransInfo\n",
"psy = PSyFactory(\"gocean1.0\", distributed_memory=False).create(inv_info)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict_keys(['invoke_0', 'invoke_1', 'invoke_2', 'invoke_3'])\n",
"\u001b[37mGOInvokeSchedule\u001b[0m[invoke='invoke_0']\n",
" 0: \u001b[31mLoop\u001b[0m[type='outer', field_space='go_cu', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'jstop']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[31mLoop\u001b[0m[type='inner', field_space='go_cu', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'istop+1']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[35mCodedKern\u001b[0m compute_cu_code(cu_fld,p_fld,u_fld) [module_inline=False]\n",
" 1: \u001b[31mLoop\u001b[0m[type='outer', field_space='go_cv', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'jstop+1']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[31mLoop\u001b[0m[type='inner', field_space='go_cv', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'istop']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[35mCodedKern\u001b[0m compute_cv_code(cv_fld,p_fld,v_fld) [module_inline=False]\n",
" 2: \u001b[31mLoop\u001b[0m[type='outer', field_space='go_cf', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'jstop+1']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[31mLoop\u001b[0m[type='inner', field_space='go_cf', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'istop+1']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[35mCodedKern\u001b[0m compute_z_code(z_fld,p_fld,u_fld,v_fld,dx,dy) [module_inline=False]\n",
" 3: \u001b[31mLoop\u001b[0m[type='outer', field_space='go_ct', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'jstop']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[31mLoop\u001b[0m[type='inner', field_space='go_ct', it_space='go_internal_pts']\n",
" \u001b[33mLiteral\u001b[0m[value:'2']\n",
" \u001b[33mLiteral\u001b[0m[value:'istop']\n",
" \u001b[33mLiteral\u001b[0m[value:'1']\n",
" \u001b[37mSchedule\u001b[0m[]\n",
" 0: \u001b[35mCodedKern\u001b[0m compute_h_code(h_fld,p_fld,u_fld,v_fld) [module_inline=False]\n"
]
}
],
"source": [
"print(psy.invokes.names)\n",
"sched = psy.invokes.get('invoke_0').schedule\n",
"print(sched.view())\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"graph = sched.dag()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"graph"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}