From 58300e6bb2cc482619f10aecc2f65e9dbc735472 Mon Sep 17 00:00:00 2001 From: Bas Nijholt <basnijholt@gmail.com> Date: Mon, 23 Sep 2019 14:00:55 +0200 Subject: [PATCH] use adaptive-scheduler --- phase_diagram.ipynb | 85 +++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/phase_diagram.ipynb b/phase_diagram.ipynb index 009d5c9..1f0e82f 100644 --- a/phase_diagram.ipynb +++ b/phase_diagram.ipynb @@ -6,17 +6,10 @@ "metadata": {}, "outputs": [], "source": [ + "%%writefile learners_file.py\n", + "\n", + "import phase_diagram\n", "import adaptive\n", - "adaptive.notebook_extension()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import phase_diagram as funcs\n", "\n", "lead_pars = dict(\n", " a=10, r1=50, r2=70, coverage_angle=135, angle=45, with_shell=True, which_lead=\"\"\n", @@ -43,36 +36,40 @@ " r1=None,\n", " sigma=None,\n", " x0=None,\n", - " **funcs.constants.__dict__\n", + " **phase_diagram.constants.__dict__\n", ")\n", "\n", "\n", "def pf(xy, params=params, lead_pars=lead_pars):\n", - " import phase_diagram as funcs\n", + " import phase_diagram \n", "\n", " params[\"B_x\"], params[\"mu_lead\"] = xy\n", - " lead = funcs.make_lead(**lead_pars).finalized()\n", - " return funcs.calculate_pfaffian(lead, params)\n", + " lead = phase_diagram.make_lead(**lead_pars).finalized()\n", + " return phase_diagram.calculate_pfaffian(lead, params)\n", "\n", "\n", "def smallest_gap(xy, params=params, lead_pars=lead_pars):\n", - " import phase_diagram as funcs\n", + " import phase_diagram\n", "\n", " params[\"B_x\"], params[\"mu_lead\"] = xy\n", - " lead = funcs.make_lead(**lead_pars).finalized()\n", - " pf = funcs.calculate_pfaffian(lead, params)\n", - " gap = funcs.gap_from_modes(lead, params)\n", - " return pf * gap" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "learner = adaptive.Learner2D(smallest_gap, bounds=[(0, 2), (0, 35)])\n", - "# learner.load('phase_diagram.pickle')" + " lead = phase_diagram.make_lead(**lead_pars).finalized()\n", + " pf = phase_diagram.calculate_pfaffian(lead, params)\n", + " gap = phase_diagram.gap_from_modes(lead, params)\n", + " return pf * gap\n", + "\n", + "fname = 'phase_diagram_gap.pickle'\n", + "f = smallest_gap\n", + "\n", + "# fname = 'phase_diagram.pickle'\n", + "# f = pf\n", + "\n", + "loss = adaptive.learner.learnerND.curvature_loss_function()\n", + "learner = adaptive.LearnerND(smallest_gap, bounds=[(0, 2), (0, 35)], loss_per_simplex=loss)\n", + "\n", + "# learner.load(fname)\n", + "\n", + "learners = [learner]\n", + "fnames = [fname]" ] }, { @@ -81,7 +78,10 @@ "metadata": {}, "outputs": [], "source": [ - "runner = adaptive.Runner(learner, goal=lambda l: l.npoints > 60000)" + "import adaptive\n", + "adaptive.notebook_extension()\n", + "runner = adaptive.Runner(learner, goal=lambda l: l.npoints > 60000)\n", + "runner.live_info()" ] }, { @@ -90,7 +90,8 @@ "metadata": {}, "outputs": [], "source": [ - "runner.live_info()" + "%%output size=100\n", + "learner.plot(tri_alpha=0.4, n=None)" ] }, { @@ -99,8 +100,7 @@ "metadata": {}, "outputs": [], "source": [ - "%%output size=100\n", - "learner.plot(tri_alpha=0.4, n=None)" + "learner.save(fname)" ] }, { @@ -109,7 +109,24 @@ "metadata": {}, "outputs": [], "source": [ - "learner.save('phase_diagram.pickle')" + "import adaptive_scheduler\n", + "\n", + "def goal(learner):\n", + " return learner.npoints > 100_000\n", + "\n", + "scheduler = adaptive_scheduler.scheduler.PBS(\n", + " cores=13*10,\n", + " cores_per_node=10,\n", + ") # every learner get this many cores\n", + "\n", + "run_manager = adaptive_scheduler.server_support.RunManager(\n", + " scheduler=scheduler,\n", + " learners_file=\"learners_file.py\",\n", + " goal=goal,\n", + " log_interval=30,\n", + " save_interval=300,\n", + ")\n", + "run_manager.start()\n" ] }, { -- GitLab