202608080632.260.355.8282.rchaer:
Se experimentaron problemas por superar el límite de archvos abiertos por
proceso en servidores linux de muchos hilos al ejecutar SimRes3.
En la distribución del cálculo entre los Hilos, en simulación, se
define un conjunto de Tareas que indican un rango de crónicas a simular.
Como no todas las crónicas demoran lo mismo, se intenta definir un número de
tareas superior a de Hilos para que así, el Hilo que termina primero tome
una nueva tarea y no todos esperen por el más lento. En el distribuidor de
tareas, para simulación, tenía impuesto que si el usuario no definía el
número de tareas, lo definía internamente como nTareas = nHilos * 20
En una máquina de 192 hilos esto implica nTareas = 3840 y entonces la cantidad
de Tareas (rangos de crónicas) a simular queda definida como el mínimo entre
nCronicas y nTareas, es decir
nTareas := min( nCronicas, nHilos * 20 ) (1)
y las tareas tienen un rango de crónicas de
nCronicasPorTarea := nCronicas div nTareas (2)
salvo una tarea a la que se le suma el eventual resto de la división:
nCronicasUltimaTarea := nCronicasPorTarea + nCronicas mod nTareas; (3)
Cada Hilo, al simular cada tarea escribe en un archivo separado el conjunto
de variables seleccionado para la tarea. Entonces, en el directorio de
resultados del simulador se generan nTareas archivos binarios ".rsb" para
ser luegos procesados por SimRes3.
El posprocesdor SimRes3, abre todos los archivos .rsb a la vez para poder
ejecutar en forma sinconizada las operaciones crónicas. En cada paso de tiempo
debe acceder a todas las crónicas simuladas. Entonces, la cantidad de
archivos ".rsb", que es igual a la cantidad nTareas debe ser menor a 1024
para que SimRes3 pueda abrir todos a la vez.
Por lo atnerior,a nivel de distribuidor de tareas para simulación
sustituyendo (1) por:
nTareas := min( min( nCronicas, nHilos * 20 ), 800 ); (1)
asegurando así, que a lo máximo habrá 800 archivos ".rsb"
202608061211.259.355.8279.rchaer:
Cambio udatoshorariosdetallados, para se lean completamente en memoria
en un buffer compartido entre los hilos para evitar así tener que
dejar el archivo abierto. En la Sala ADME_CP quedaban 6 archivos abiertos
y en los servidores de 192 hilos eso hacía que se superar el límite de 1024
archivos por proceso.
202607250931.258.355.8243.rchaer:
BUGFIX en ugter_combinado. En la versión anterior se itrodusco un bug en el manejo
de la máscara de combustibles.
202607240618.257.335.8239.rchaer:
BUGFIXs varios. Se detectó un mal funcionamiento de las optimizaciones/simulaciones usando
el Intermediario de Costo Futuro en la sala PES_Mayo_2026 que utiliza actores térmicos
bi-combustibles. Para la búsqueda del error, se implementó un CONTROL_PARENTAL en
la escritura del problema MIPSimplex. Para activar el CONTROL_PARENTAL se debe
recompilar con el CD "CONTROL_PARENTAL". Con eso activado, cada intento de escribir
en el MIPSimplex pasa por una serie de chequeos que verifican si la Entidad que
intenta escribir tiene derechos de modificación de ese casillero de la matriz.
El CONTROL_PARENTAL implementado, permitio identificar y corregir por lo menos dos bugs.
Uno en el actor térmico simple cuando usa bi-combustible y otro en fuente sintetizador.
Con estos bugs corregidos, se volvió a ejecutar la simualción de la sala PES_Mayo_2026
con el Intermediario de Costo Futuro y se obtuvieron resultados razonables.
En principio parece estar solucionado el problema detectado lo que quedará confirmado
o no luego de pruebas más exaustivas.
La ejecución de la sala PES_Mayo_2026 con Intermediario de Costo Futuro llevó 6:40 horas
en un serivodor usando 180 núcleos de cálculo y no se detectó diferencia relevante en el tiempo
por activar o no el CONTROL_PARENTAL.
202607212109.256.355.8221.rchaer:
BUGFIX1 en TArcoAutoproductor, buscaba los actores asociados en la lista de la Región
y eso no estaba inicializado en preparar memoria.
BUGFIX2 en se implementó procedimientos LOCK_SEPARADORES_GLOBALES y UNLOCK_SEPARADORES_GLOBALES
en uauxiliares y se impuso con try - finally en runOptimizar y runSimular el bloque del cambio
de configuración de separadores. Caulquier ingreso a un ambiente multi-hilo debiera
usar este bloqueo para impedir que los thread estén cambiando la configuración.
BUGFIX3 en TEsclavizadorSobreMuestreado faltaba el "override" en el método opt_fijarRestriccionesDeCaja
lo que hacía que el simulaciones con IntermediarioDeCostoFuturo, el planteo del MIPSimplex
fuera incorrecto.
202607161017.255.355.8201
rchaer:
Se agrega al número de versión que el string "icfON" o "icfOFF"
para indicar si fue compilado con Intermediario de Costo Futuro o NO.
Cambio en el editor que por defecto esté marcado "_icf"
mmontichelli, emaolli:se agregan funciones al evaluado de expresiones para posibilitar
inclir bucles "for" y "while" y para disponer de las variables
"NPostes" y "DurPos" en los scripts.
mmontichelli: se mejora publicación de variables en el árbol de selección de índices
para SimRes3, incluyendo la publicación de las variables de los elementos de la
red eléctrica y organizando los actores en las Regines correspondientes.
202606211020.254.355.8105.rchaer agrego ControladorDeRegion a TRegion
El Controlador De Region, permite agregar reglas adicionales al despacho luego de
que todos los actores de la región cargaron sus ecuaciones en el MIPSimplex.
202606161120.253.354.8077.vcamacho agrego flg_CostoFallaDinamico en uDemandas, por defecto en false
para calcular el despacho de falla con costo de forma dinamica
202606131931.253.353.8068.rchaer agrego flgOffsetGaussiano en TFuenteSintetizadorFmultPorCanal
por defecto flgOffsetGaussiano = false y las fuentes asociadas a cada salida se usan
par multiplicar la salida real. Si flgOffsetGassiano = true, se suma el valor de la fuente
a la salida gaussiana antes de su transformación al espacio real.
202605280945.252.352.8020.rchaer&Adriana_cursoSimSEE, se agrega perfil horario
de reserva al las fichas dinámicas del actor DBESS
202605162234.250.351.7967.rchaer: agrego secuencia_TRATAR_MIP_SPX a TGlobs
e implemento en TMIPSimplex el tratamiento de la secuencia de resolvedores
SNGH y elimino entonces la necesidad de mantener ejecutables separados
para definir la secuencia de resolvedores.
202605161631.249.350.7966.rchaer: agrego flg_E_x_cvSpot en TGlobs para
permitir seleccionar si la energía al marginal se calcula con el cvSpot del Actor o
con el marginal del nodo. el cvSpot lo deben calcular los Actores en su leerSolucion
como: cvSpot = cv + lambda_P es decir como su costo variable de generación más
el multiplicador de Lagrange de la restricción de caja de la Potencia del Actor.
202605121622.247.349.7942.vc&rch cambiamos en umipsimplex_glpk
procedure ActivarAlt_Params; params_Aplicar.presolve := GLP_ON
porque la solución con eso a OFF hacía que hubiera diferencias importantes
con la solución clásica.
202605060959.246.349.7924.rchaer Cambio control de Penalidades Extra Del Paso (CD: CPEDP).
Estaba comparando con -AsumaCero y disparando exception y haciendo un dump del Simplex
Comparo con -1E-8 y que largue warning pero no tranque ni haga dump del simplex.
202605041939.245.349.7920.rchaer agrego parámetros a la Sala para el optimizador GISOpt
202605011705.245.348.7903.rchaer bugfix en ucosa que afectaba la liberación de memoria
al finalizar las aplicaciones multi-hilo. El bug fue introducido en la v243
202604291519.244.348.7898.vcamacho: se cambia en ugterbasico el cargue
del simplex utilizando red de combustibles, se agregan las variables costo_asociado_combustible_i
para publicar en el simres3, se esta determinando la forma correcta para su calculo, en etapa de pruebas.
Se cambia el orden de los rg_actores, se colocal los asociados a los combustibles luego de los nodos y arcos,
en TRegion.CrearActualizarListados.
202604201640.243.348.7884.vcamacho: se agrega en usimplex Legacy_SimSEE un codigo de error para
cuando queda en bucle intercambiando filas y columnas. Cuando pasa esto, sale y trata
de resolver primero normalizando, luego con highs y luego con glpk.
+mmonticheli hace cambios en ucosa para evitar pérdidas de memoria.
202604160905.242.348.7852.rchaer: primer versión operativa de TDemandaPlantaH2
202604101200.241.348.7818 vcamacho: agrego la posibilidad de usar red de combustibles a ugter_onoffporpaso ugter_onoffporposte
202604071832.240.347.7808.rchaer: Bugfix en distribuidor de simulaciones multihilo.
El bug hacía que en determinadas configuraciones (pocas crónicas en máquinas muy rápidas)
en forma aleatoria la simulación terminara con el mensaje SIMULACION_ABORTADA.
202603301148.239.347.7795.rchaer: Agrego traducción al Francés y al Porgutgués
202603251208.238.347.7780 vcamacho: agrego la posibilidad de usar red de combustibles a ugter_combinado
202603250722.238.346.7773:
BUGFIX1.rchaer: Para solucionar el tema de los sorteos en optimización
por ahora se impone que NTareas = NHilos. O sea se ignora el parámetro NTareas y se
obliga a que sea igual a NHilos.
BUGFIX2.rchaer: En TDemanda.FijarRestriccionesDeCaja se trataba mal la fijación de las restricciones
de caja en el caso de que se hubiera desmarcado la opción Permitir Racionamiento Preventivo.
Directamete se fijaba la caja equivocada. Como esta opción se utiliza por defecto activa, no
había surgido el problema.
AVANCE.xcaporale: agrega manejo de contratos con detalles horarios al actor TDemandaPlantaH2
202603231659.237.346.7767.rchaer: bufix en en la optmización clásica multi-hilo
los procedimientos prepararpaso_as y sorteosdelpaso se ejecutaban para cada TAREA en lugar
de una sola vez por hilo en cada paso opt. Como un mismo hilo puede ejecutar más de un rango de estrellas (tarea)
en el mismo paso, tal como estaba, se volvia a sortear para cada rango de estrellas con lo que no se respetaba
que todos los estados se exploraran con la misma suerte.
202607202056.236.346.7760 rchaer: bugfix en TBancoDeBaterias01 faltaba sobre-escribir
el procedimiento get_pa_ptr que fue introducido en una versión reciente
202603121231.235.346.7734
1) vcamacho: bugfix en Editor de fichas de TGTer basico que no permitía guardar
2) rchaer: bugfix en uGeneradores.TGeneradorPostizador.SorteosDelPaso no se
estaba considerando la PAutorizadaCentral
202603182106.235.345.7735 xcaporale: Modificación en la DemandaPlataH2, pasar a horarios los consumos de H2.
202603201602.235.346.7759 vcamacho: cambio de nombre de parametro ren_A ren_B en el reclnk de la ficha de ugterbasico
202603112034.234.344.7730.rchaer: Bugfix introducido en la rev.7528. El bug implicaba el cambio de signo
en el Azimut de los parques solares con seguimiento.
202603041946.233.344.7727.vcamacho: Agrego a ugter_basico la posibilidad de usar la red de combustibles
202603041946.233.343.7706.rchaer: Agrego a TDemanda la capacidad de considerar fuentes de ruido
de paso HORARIO en salas de paso mayor al horario.
202602131205.232.342.7582.vcamacho: Agrego posibilidad de despacho con costo de falla a las demandas,
inhabilito despacho con cvmedio del editor
202601250957.232.342.7582.rchaer: Agrego manejo de Envejecimiento a TSolarPV
202601180720.231.341.7556.rchaer: Cambio TPI_Planes de ser una listaDeCosas
a ser una listaDeCosasConNombre para reflejar que lso Planes tienen nombre y
son por tanto refenciables.
202601030717.230.340.7528.rchaer: bugfix en empaquetado de Salas del Editor
fallaba cuando tenía referencias a archivos por bug introducido en resolver
referencias a SalaSEEP cuando SalaSEEP = nil