<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.nlhpc.cl/index.php?action=history&amp;feed=atom&amp;title=AtChem2_con_Singularity</id>
	<title>AtChem2 con Singularity - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nlhpc.cl/index.php?action=history&amp;feed=atom&amp;title=AtChem2_con_Singularity"/>
	<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=AtChem2_con_Singularity&amp;action=history"/>
	<updated>2026-04-28T12:02:15Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=AtChem2_con_Singularity&amp;diff=851&amp;oldid=prev</id>
		<title>Eosorio: Página creada con «== Introducción == El siguiente procedimiento muestra los pasos necesarios para utilizar &#039;&#039;&#039;AtChem2&#039;&#039;&#039; utilizando un contenedor mediante &#039;&#039;&#039;SingularityCE&#039;&#039;&#039;.  Considere que los pasos que se muestran a continuación son una guía básica para que pueda ejecutar sus aplicaciones, por lo que modificaciones y configuraciones personalizadas deben ser realizadas por el lector.  == Descarga de AtChem2 == === Descarga de código fuente === Descargaremos bajo nuestro usuario…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=AtChem2_con_Singularity&amp;diff=851&amp;oldid=prev"/>
		<updated>2024-11-29T13:54:08Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «== Introducción == El siguiente procedimiento muestra los pasos necesarios para utilizar &amp;#039;&amp;#039;&amp;#039;AtChem2&amp;#039;&amp;#039;&amp;#039; utilizando un contenedor mediante &amp;#039;&amp;#039;&amp;#039;SingularityCE&amp;#039;&amp;#039;&amp;#039;.  Considere que los pasos que se muestran a continuación son una guía básica para que pueda ejecutar sus aplicaciones, por lo que modificaciones y configuraciones personalizadas deben ser realizadas por el lector.  == Descarga de AtChem2 == === Descarga de código fuente === Descargaremos bajo nuestro usuario…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introducción ==&lt;br /&gt;
El siguiente procedimiento muestra los pasos necesarios para utilizar &amp;#039;&amp;#039;&amp;#039;AtChem2&amp;#039;&amp;#039;&amp;#039; utilizando un contenedor mediante &amp;#039;&amp;#039;&amp;#039;SingularityCE&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Considere que los pasos que se muestran a continuación son una guía básica para que pueda ejecutar sus aplicaciones, por lo que modificaciones y configuraciones personalizadas deben ser realizadas por el lector.&lt;br /&gt;
&lt;br /&gt;
== Descarga de AtChem2 ==&lt;br /&gt;
=== Descarga de código fuente ===&lt;br /&gt;
Descargaremos bajo nuestro usuario el código de AtChem2 utilizando:&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/AtChem/AtChem2.git&lt;br /&gt;
&lt;br /&gt;
Esto creará en nuestro directorio una carpeta llamada &amp;lt;code&amp;gt;AtChem2&amp;lt;/code&amp;gt;, la que utilizaremos para nuestro ejemplo.&lt;br /&gt;
=== Descarga de contenedor ===&lt;br /&gt;
Para descargar el contenedor de &amp;#039;&amp;#039;&amp;#039;AtChem2&amp;#039;&amp;#039;&amp;#039; deberemos ejecutar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 ml purge&lt;br /&gt;
 ml intel/2022.00&lt;br /&gt;
 ml singularityCE&lt;br /&gt;
 singularity pull docker://ghcr.io/wacl-york/atchem2:1.2.2&lt;br /&gt;
&lt;br /&gt;
Veremos el progreso similar a:&lt;br /&gt;
 INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
 INFO:    Starting build...&lt;br /&gt;
 Getting image source signatures&lt;br /&gt;
 Copying blob 9f247ea85df4 done  &lt;br /&gt;
 Copying blob 24578b8a05d2 done  &lt;br /&gt;
 Copying blob 9088cdb84e39 done  &lt;br /&gt;
 Copying config 7fbde900a5 done  &lt;br /&gt;
 Writing manifest to image destination&lt;br /&gt;
 Storing signatures&lt;br /&gt;
 2024/11/29 10:12:17  info unpack layer: sha256:9088cdb84e397c480d4c5f1675d1aa6928c3e8b5b30c57b68a756d5d1fda4d80&lt;br /&gt;
 2024/11/29 10:12:18  info unpack layer: sha256:24578b8a05d294f5a4174d182bbf2cf628f3617b73c3ab72e9f597b14b5a214f&lt;br /&gt;
 2024/11/29 10:12:19  info unpack layer: sha256:9f247ea85df42ee348a150e723b02ed14d0d205589ccccbf6bb5caa2a5d489ed&lt;br /&gt;
 INFO:    Creating SIF file...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto dejará en nuestro directorio el archivo contenedor &amp;lt;code&amp;gt;atchem2_1.2.2.sif&amp;lt;/code&amp;gt; disponible para su uso.&lt;br /&gt;
&lt;br /&gt;
=== Qué tenemos hasta el momento ===&lt;br /&gt;
Si hemos estado trabajando en nuestra carpeta principal, actualmente tendremos:&lt;br /&gt;
&lt;br /&gt;
 AtChem2&lt;br /&gt;
 atchem2_1.2.2.sif&lt;br /&gt;
&lt;br /&gt;
== Ejecución de prueba de AtChem2 ==&lt;br /&gt;
&lt;br /&gt;
Para realizar una prueba de ejecución de &amp;#039;&amp;#039;&amp;#039;AtChem2&amp;#039;&amp;#039;&amp;#039; mediante &amp;#039;&amp;#039;&amp;#039;Singularity&amp;#039;&amp;#039;&amp;#039; ejecutaremos:&lt;br /&gt;
&lt;br /&gt;
 cd AtChem2&lt;br /&gt;
 singularity run --bind model:/data_transfer ~/atchem2_1.2.2.sif model/mechanism.fac&lt;br /&gt;
&lt;br /&gt;
Si todo funciona de manera adecuada veremos (se ha eliminado texto, y solo se muestra una parte inicial y final):&lt;br /&gt;
 INFO:    Converting SIF file to temporary sandbox...&lt;br /&gt;
 &lt;br /&gt;
 * facsimile mechanism file: model/mechanism.fac&lt;br /&gt;
 * fortran mechanism directory [ default = ./model/configuration/ ]:&lt;br /&gt;
 * mcm data files directory [ default = ./mcm/ ]:&lt;br /&gt;
 &lt;br /&gt;
 ...&lt;br /&gt;
 &lt;br /&gt;
 make sharedlib&lt;br /&gt;
 gfortran -c model/configuration/customRateFuncs.f90 -ffree-line-length-none -ffree-form -fimplicit-none -Wall -Wpedantic -Wno-unused-dummy-argument -fcheck=all -fPIC -shared -o model/configuration/customRateFuncs.o -Jobj&lt;br /&gt;
 gfortran -c model/configuration/mechanism.f90 -ffree-line-length-none -ffree-form -fimplicit-none -Wall -Wpedantic -Wno-unused-dummy-argument -fcheck=all -fPIC -shared -o model/configuration/mechanism.o -Jobj&lt;br /&gt;
 gfortran -shared -o model/configuration/mechanism.so model/configuration/mechanism.o model/configuration/customRateFuncs.o&lt;br /&gt;
 =&amp;gt; shared library directory: ./model/configuration/&lt;br /&gt;
 &lt;br /&gt;
 make atchem2 executable&lt;br /&gt;
 gfortran -o atchem2 -Jobj -Iobj src/dataStructures.f90 src/argparse.f90 src/interpolationFunctions.f90 src/configFunctions.f90 src/inputFunctions.f90 src/outputFunctions.f90 src/atmosphereFunctions.f90 src/solarFunctions.f90 src/constraintFunctions.f90 src/solverFunctions.f90 src/parameterModules.f90 src/atchem2.f90 -ffree-form -fimplicit-none -Wall -Wpedantic -fcheck=all -fPIC -O2 -L/atchem-lib/cvode/lib -L/atchem-lib/openlibm-0.8.1 -Wl,-R,/usr/lib/:/atchem-lib/cvode/lib:/atchem-lib/openlibm-0.8.1 -lopenlibm -lsundials_fcvode -lsundials_cvode -lsundials_fnvecserial -lsundials_nvecserial -ldl&lt;br /&gt;
 src/inputFunctions.f90:1081:0:&lt;br /&gt;
 &lt;br /&gt;
 ...&lt;br /&gt;
 &lt;br /&gt;
 -------------&lt;br /&gt;
  Directories&lt;br /&gt;
 -------------&lt;br /&gt;
  Model directory is: model&lt;br /&gt;
  Output directory is: model/output&lt;br /&gt;
  Reaction Rates directory is: model/output/reactionRates&lt;br /&gt;
  Configuration directory is: model/configuration&lt;br /&gt;
  Constraints directory is: model/constraints&lt;br /&gt;
  Environment Constraints directory is: model/constraints/environment&lt;br /&gt;
  Photolysis Constraints directory is: model/constraints/photolysis&lt;br /&gt;
  Species Constraints directory is: model/constraints/species&lt;br /&gt;
  MCM directory is: mcm&lt;br /&gt;
  Shared library is: model/configuration/mechanism.so&lt;br /&gt;
 &lt;br /&gt;
 ...&lt;br /&gt;
 &lt;br /&gt;
 ------------------&lt;br /&gt;
  Final statistics&lt;br /&gt;
 ------------------&lt;br /&gt;
  No. steps = 603   No. f-s = 699   No. J-s = 1003   No. LU-s = 100&lt;br /&gt;
  No. nonlinear iterations = 696&lt;br /&gt;
  No. nonlinear convergence failures = 0&lt;br /&gt;
  No. error test failures = 28&lt;br /&gt;
 &lt;br /&gt;
  Runtime = 0&lt;br /&gt;
  Deallocating memory.&lt;br /&gt;
 INFO:    Cleaning up image...&lt;br /&gt;
&lt;br /&gt;
Esto nos muestra que se ha logrado ejecutar el contenedor con el archivo de entrada &amp;#039;&amp;#039;&amp;#039;model/mechanism.fac&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Ejecución como tarea Slurm ==&lt;br /&gt;
&lt;br /&gt;
Si lo anterior lo deseamos ejecutar en un nodo de cómputo, podemos utilizar un script similar a:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J AtChem_JOB&lt;br /&gt;
 #SBATCH -p general&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH -c 1&lt;br /&gt;
 #SBATCH --mem-per-cpu=1000&lt;br /&gt;
 #SBATCH --mail-user=lcastilloelmes@gmail.com&lt;br /&gt;
 #SBATCH --mail-type=ALL&lt;br /&gt;
 #SBATCH -o AtChem_JOB_%j.out&lt;br /&gt;
 &lt;br /&gt;
 ml purge&lt;br /&gt;
 ml singularityCE&lt;br /&gt;
 &lt;br /&gt;
 cd AtChem2&lt;br /&gt;
 singularity run --bind model:/data_transfer ~/atchem2_1.2.2.sif model/mechanism.fac&lt;br /&gt;
&lt;br /&gt;
Es importante destacar qué la carpeta &amp;#039;&amp;#039;&amp;#039;AtChem2/model&amp;#039;&amp;#039;&amp;#039; debe contener:&lt;br /&gt;
&lt;br /&gt;
* los archivos &amp;#039;&amp;#039;&amp;#039;*.fac&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
* el directorio &amp;#039;&amp;#039;&amp;#039;configuration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* el directorio &amp;#039;&amp;#039;&amp;#039;constraints&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
De esta manera podrá editar configuraciones y restricciones para sus simulaciones.&lt;br /&gt;
&lt;br /&gt;
En el caso de requerir más recursos, recuerde que puede utilizar nuestro [https://wiki.nlhpc.cl/Generador%20Scripts Generador Scripts] para la edición de scripts.&lt;/div&gt;</summary>
		<author><name>Eosorio</name></author>
	</entry>
</feed>