"Quórum Teológico" es un blog abierto al desarrollo del pensamiento humano y desea ser un medio que contribuya al diálogo y la discusión de los temas expuestos por los diferentes contribuyentes a la misma. "Quórum Teológico", no se hace responsable del contenido de los artículos expuesto y solo es responsabilidad de sus autores.

Ya puedes traducir esta página a cualquier idioma

Déjanos tu mensaje en este Chat

Turbocharging Python with Command Line Tools


November 12, 2018

Table of Contents
·         Introduction
·         Using the GPU with CUDA Python
·         KMeans Clustering
·         Summary





Introduction

It’s as good a time to be writing code as ever – these days, a little bit of code goes a long way. Just a single function is capable of performing incredible things. Thanks to GPUs, Machine Learning, the Cloud, and Python, it’s is easy to create “turbocharged” command-line tools. Think of it as upgrading your code from using a basic internal combustion engine to a nuclear reactor. The basic recipe for the upgrade? One function, a sprinkle of powerful logic, and, finally, a decorator to route it to the command-line.

Writing and maintaining traditional GUI applications – web or desktop – is a Sisyphean task at best. It all starts with the best of intentions, but can quickly turn into a soul crushing, time-consuming ordeal where you end up asking yourself why you thought becoming a programmer was a good idea in the first place. Why did you run that web framework setup utility that essentially automated a 1970’s technology – the relational database – into series of python files? The old Ford Pinto with the exploding rear gas tank has newer technology than your web framework. There has got to be a better way to make a living.

The answer is simple: stop writing web applications and start writing nuclear powered command-line tools instead. The turbocharged command-line tools that I share below are focused on fast results vis a vis minimal lines of code. They can do things like learn from data (machine learning), make your code run 2,000 times faster, and best of all, generate colored terminal output.

Here are the raw ingredients that will be used to make several solutions:


You can follow along with source code, examples, and resources in Kite’s github repository.

Using The Numba JIT (Just in time Compiler)

Python has a reputation for slow performance because it’s fundamentally a scripting language. One way to get around this problem is to use the Numba JIT. Here’s what that code looks like:

First, use a timing decorator to get a grasp on the runtime of your functions:

def timing(f):
    @wraps(f)
    def wrap(*args, **kwargs):
        ts = time()
        result = f(*args, **kwargs)
        te = time()
        print(f'fun: {f.__name__}, args: [{args}, {kwargs}] took: {te-ts} sec')
        return result
    return wrap
Next, add a numba.jit decorator with the “nopython” keyword argument, and set to true. This will ensure that the code will be run by the JIT instead of regular python.

@timing
@numba.jit(nopython=True)
def expmean_jit(rea):
    """Perform multiple mean calculations"""

    val = rea.mean() ** 2
    return val
When you run it, you can see both a “jit” as well as a regular version being run via the command-line tool:

$ python nuclearcli.py jit-test

Running NO JIT
func:'expmean' args:[(array([[1.0000e+00, 4.2080e+05, 4.2350e+05, ..., 1.0543e+06, 1.0485e+06,
        1.0444e+06],
       [2.0000e+00, 5.4240e+05, 5.4670e+05, ..., 1.5158e+06, 1.5199e+06,
        1.5253e+06],
       [3.0000e+00, 7.0900e+04, 7.1200e+04, ..., 1.1380e+05, 1.1350e+05,
        1.1330e+05],
       ...,
       [1.5277e+04, 9.8900e+04, 9.8100e+04, ..., 2.1980e+05, 2.2000e+05,
        2.2040e+05],
       [1.5280e+04, 8.6700e+04, 8.7500e+04, ..., 1.9070e+05, 1.9230e+05,
        1.9360e+05],
       [1.5281e+04, 2.5350e+05, 2.5400e+05, ..., 7.8360e+05, 7.7950e+05,
        7.7420e+05]], dtype=float32),), {}] took: 0.0007 sec
$ python nuclearcli.py jit-test –jit

Running with JIT
func:'expmean_jit' args:[(array([[1.0000e+00, 4.2080e+05, 4.2350e+05, ..., 1.0543e+06, 1.0485e+06,
        1.0444e+06],
       [2.0000e+00, 5.4240e+05, 5.4670e+05, ..., 1.5158e+06, 1.5199e+06,
        1.5253e+06],
       [3.0000e+00, 7.0900e+04, 7.1200e+04, ..., 1.1380e+05, 1.1350e+05,
        1.1330e+05],
       ...,
       [1.5277e+04, 9.8900e+04, 9.8100e+04, ..., 2.1980e+05, 2.2000e+05,
        2.2040e+05],
       [1.5280e+04, 8.6700e+04, 8.7500e+04, ..., 1.9070e+05, 1.9230e+05,
        1.9360e+05],
       [1.5281e+04, 2.5350e+05, 2.5400e+05, ..., 7.8360e+05, 7.7950e+05,
@click.option('--jit/--no-jit', default=False)
        7.7420e+05]], dtype=float32),), {}] took: 0.2180 sec
How does that work? Just a few lines of code allow for this simple toggle:

@cli.command()
def jit_test(jit):
    rea = real_estate_array()
    if jit:
        click.echo(click.style('Running with JIT', fg='green'))
        expmean_jit(rea)
    else:
        click.echo(click.style('Running NO JIT', fg='red'))
        expmean(rea)

In some cases a JIT version could make code run thousands of times faster, but benchmarking is key. Another item to point out is the line:

click.echo(click.style('Running with JIT', fg='green'))
This script allows for colored terminal output, which can be very helpful it creating sophisticated tools.

Using the GPU with CUDA Python
Another way to nuclear power your code is to run it straight on a GPU. This example requires you run it on a machine with a CUDA enabled. Here’s what that code looks like:

@cli.command()
def cuda_operation():
    """Performs Vectorized Operations on GPU"""

    x = real_estate_array()
    y = real_estate_array()

    print('Moving calculations to GPU memory')
    x_device = cuda.to_device(x)
    y_device = cuda.to_device(y)
    out_device = cuda.device_array(
        shape=(x_device.shape[0],x_device.shape[1]), dtype=np.float32)
    print(x_device)
    print(x_device.shape)
    print(x_device.dtype)

    print('Calculating on GPU')
    add_ufunc(x_device,y_device, out=out_device)

    out_host = out_device.copy_to_host()
    print(f'Calculations from GPU {out_host}')

It’s useful to point out is that if the numpy array is first moved to the GPU, then a vectorized function does the work on the GPU. After that work is completed, then the data is moved from the GPU. By using a GPU there could be a monumental improvement to the code, depending on what it’s running. The output from the command-line tool is shown below:

$ python nuclearcli.py cuda-operation
Moving calculations to GPU memory

(10015, 259)
float32

Calculating on GPU

Calculcations from GPU [[2.0000e+00 8.4160e+05 8.4700e+05 ... 2.1086e+06 2.0970e+06 2.0888e+06]
 [4.0000e+00 1.0848e+06 1.0934e+06 ... 3.0316e+06 3.0398e+06 3.0506e+06]
 [6.0000e+00 1.4180e+05 1.4240e+05 ... 2.2760e+05 2.2700e+05 2.2660e+05]
 ...
 [3.0554e+04 1.9780e+05 1.9620e+05 ... 4.3960e+05 4.4000e+05 4.4080e+05]
 [3.0560e+04 1.7340e+05 1.7500e+05 ... 3.8140e+05 3.8460e+05 3.8720e+05]
 [3.0562e+04 5.0700e+05 5.0800e+05 ... 1.5672e+06 1.5590e+06 1.5484e+06]]

Running True Multi-Core Multithreaded Python using Numba

One common performance problem with Python is the lack of true, multi-threaded performance. This also can be fixed with Numba. Here’s an example of some basic operations:

@timing
@numba.jit(parallel=True)
def add_sum_threaded(rea):
    """Use all the cores"""

    x,_ = rea.shape
    total = 0
    for _ in numba.prange(x):
        total += rea.sum()
        print(total)

@timing
def add_sum(rea):
    """traditional for loop"""

    x,_ = rea.shape
    total = 0
    for _ in numba.prange(x):
        total += rea.sum()
        print(total)

@cli.command()
@click.option('--threads/--no-jit', default=False)
def thread_test(threads):
    rea = real_estate_array()
    if threads:
        click.echo(click.style('Running with multicore threads', fg='green'))
        add_sum_threaded(rea)
    else:
        click.echo(click.style('Running NO THREADS', fg='red'))
        add_sum(rea)

Note that the key difference between the parallel version is that it uses @numba.jit(parallel=True) and numba.prange to spawn threads for iteration. Looking at the picture below, all of the CPUs are maxed out on the machine, but when almost the exact same code is run without the parallelization, it only uses a core.


$ python nuclearcli.py thread-test

$ python nuclearcli.py thread-test --threads

KMeans Clustering

One more powerful thing that can be accomplished in a command-line tool is machine learning. In the example below, a KMeans clustering function is created with just a few lines of code. This clusters a pandas DataFrame into a default of 3 clusters.

def kmeans_cluster_housing(clusters=3):
    """Kmeans cluster a dataframe"""
    url = 'https://raw.githubusercontent.com/noahgift/socialpowernba/master/data/nba_2017_att_val_elo_win_housing.csv'
    val_housing_win_df =pd.read_csv(url)
    numerical_df =(
        val_housing_win_df.loc[:,['TOTAL_ATTENDANCE_MILLIONS', 'ELO',
        'VALUE_MILLIONS', 'MEDIAN_HOME_PRICE_COUNTY_MILLIONS']]
    )
    #scale data
    scaler = MinMaxScaler()
    scaler.fit(numerical_df)
    scaler.transform(numerical_df)
    #cluster data
    k_means = KMeans(n_clusters=clusters)
    kmeans = k_means.fit(scaler.transform(numerical_df))
    val_housing_win_df['cluster'] = kmeans.labels_
    return val_housing_win_df
The cluster number can be changed by passing in another number (as shown below) using click:

@cli.command()
@click.option('--num', default=3, help='number of clusters')
def cluster(num):
    df = kmeans_cluster_housing(clusters=num)
    click.echo('Clustered DataFrame')
    click.echo(df.head())
Finally, the output of the Pandas DataFrame with the cluster assignment is show below. Note, it has cluster assignment as a column now.

$ python -W nuclearcli.py cluster



 $ python -W nuclearcli.py cluster --num 2



Summary

The goal of this article is to show how simple command-line tools can be a great alternative to heavy web frameworks. In under 200 lines of code, you’re now able to create a command-line tool that involves GPU parallelization, JIT, core saturation, as well as Machine Learning. The examples I shared above are just the beginning of upgrading your developer productivity to nuclear power, and I hope you’ll use these programming tools to help build the future.

Many of the most powerful things happening in the software industry are based on functions: distributed computing, machine learning, cloud computing (functions as a service), and GPU based programming are all great examples. The natural way of controlling these functions is a decorator-based command-line tool – not clunky 20th Century clunky web frameworks. The Ford Pinto is now parked in a garage, and you’re driving a shiny new “turbocharged” command-line interface that maps powerful yet simple functions to logic using the Click framework.

Noah Gift is lecturer and consultant at both UC Davis Graduate School of Management MSBA program and the Graduate Data Science program, MSDS, at Northwestern. He is teaching and designing graduate machine learning, AI, Data Science courses and consulting on Machine Learning and Cloud Architecture for students and faculty.

Noah’s new book, Pragmatic AI, will help you solve real-world problems with contemporary machine learning, artificial intelligence, and cloud computing tools. Noah Gift demystifies all the concepts and tools you need to get results—even if you don’t have a strong background in math or data science. Save 30% with the code, “KITE”.

This post is a part of Kite’s new series on Python. You can check out the code from this and other posts on our GitHub repository


About Noah Gift.

Caso de Éxito | Pro Eco Azuero | Proyecto de reforestación



Caso de Éxito | Pro Eco Azuero | Proyecto de reforestación |

El Proyecto Ecológico Azuero originó como una iniciativa por un grupo de científicos y dueños de tierras locales para compartir la alegría de conservar la vida silvestre local a través de restaurar su hogar, el bosque seco tropical, con sus vecinos. Desde 2010, nos hemos dedicado a la reforestación, restauración de hábitat, manejo sostenible de tierras y educación ambiental.

Lo Mejor de Encuentro en el Estudio CAP1



Encuentro en el Estudio
Canal Encuentro
Ministerio de Educación de la Nación
República Argentina

Dirección: Ariel Hassan

Dirección de Cámaras: Woody Gonzalez

Conduccion
Lalo Mir

Ingeniero de grabacion
Jorge Portugues Da Silva

Idea y Direccion
Ariel Hassan

Direccion de camaras
Woody Gonzalez

Direccion de Fotografia
Fernando Nogueira

Produccion Ejecutiva
Iara Uhalde

Camaras:
Daniel Panigazzi
Fernando Nogueira
Santiago Nadra
Gustavo Cataldi
Julian Chalde

Asistentes tecnicos
Matias Silveira
Gustavo Narvaez

Produccion
Rita Medina

Edicion
Ariel Hassan
Virginia Ciccolella
Adrian Muñoz

Guion
Ina Godoy

Maquillaje
Constanza Hazan

Vestuario
Sandra Fernandez

Foto Fija
Lucia Galli

Administracion
Irma Grosso

Produccion General
La Brujula Television


Estudios ION

Direccion
Osvaldo Acedo

Asistentes
Hernan Grasso
Mariano Beyoglonian
Leonardo Checchia

EL CANAL DE PANAMÁ: SITUACIÓN Y PERSPECTIVAS


Olmedo Beluche
100819

(El 14 de agosto el Canal de Panamá cumplirá 105 años de entrar en funcionamiento. Esta reflexión, escrita durante su centenario, sigue siendo completamente válida en este nuevo aniversario).

Hace cien años, cuando el vapor Ancón realizó el cruce inaugural del Canal de Panamá, el país era muy diferente al actual y, sin embargo, en lo esencial no ha habido muchos cambios. Parece contradictorio, pero según Hegel, la contradicción es la esencia de las cosas.

Panamá era un país recién creado, en 1914. Rural tanto productiva como demográficamente, con una significativa parte de su población acabada de llegar como zapadores del canal. Con un gobierno atenazado entre la voluntad soberana de un presidente, Belisario Porras, que quería fundar una institucionalidad auténticamente nacional y la constante intromisión de las autoridades de la Zona del Canal, garantes del protectorado (colonia) en la que nos habíamos convertido gracias a la separación de Colombia tutelada por el imperialismo norteamericano y el subsecuente Tratado Hay-Bunau Varilla.

Era un país dislocado. Por un lado, el principal recurso económico, la posición geográfica y su derivado el canal, controlado por una potencia extranjera para su beneficio económico, político y militar; por otro lado, el resto del país, el “interior”, que empezaba cruzando el límite de “la Zona”, desarticulado económica, cultural y administrativamente de ese recurso del cual no recibía más que algunas migajas muy indirectas, los salarios de los empleados de la vía acuática que se gastaban “del lado de acá”.
Transitismo, categoría que define la formación económico social panameña

Para estudiar el caso de Panamá, Guillermo Castro recurre al concepto de “civilizaciones hidráulicas” de Wittfogel, las cuales se caracterizan por el manejo del recurso agua para la agricultura en gran escala, como las antiguas civilizaciones egipcia, mesopotámica, azteca, etc., combinando desarrollos tecnológicos con una administración despótica de ese recurso.

En el caso panameño, el recurso agua, principalmente del río Chagres, fue estructurado en una civilización hidráulica puesta al servicio del transporte intermarítimo, mediante una forma de gestión autoritaria con la forma de enclave colonial impuesta por el ejército de los Estados Unidos de América. Esa forma de gestión del recurso y de organización social, se ha descrito en Panamá bajo el concepto de “transitismo” (Castro, 2007).

Por “transitismo”, categoría creada por Hernán Porras y precisada por Alfredo Castillero C., se entiende el monopolio del tránsito por una potencia extranjera, que supedita al resto del país a los intereses de esa zona de tránsito como proveedor de recursos naturales y mano de obra barata, sacrificando el “desarrollo” económico del conjunto. Canal que puede subsistir sin el país, y país que no puede existir sin el canal, a decir de Guillermo Castro.

Ese dislocamiento entre una zona de tránsito hipertrofiada respecto a un “interior” subdesarrollado, esa desigualdad social y económica, constituyó el combustible de los movimientos sociales del siglo XX, de las grandes conmociones políticas y de las demandas por soberanía y la exigencia de acabar con el enclave colonial de “la zona”. Por supuesto, en esa lucha las clases populares pusieron el sacrificio y el heroísmo, del cual el 9 de enero de 1964 es la mejor expresión, pero la clase dominante de los especuladores y comerciantes ha pretendido cosechar los beneficios.

Esa lucha popular por la soberanía cuajó en los Tratados Torrijos- Carter de 1977, que es la base a partir de la cual se estructura la relación del canal con el país, y del país con Estados Unidos en la actualidad. Lo diferente respecto a hace cien años es la desaparición del enclave de la Zona del Canal y sus bases militares, la integración del territorio bajo “una sola bandera”, el aporte creciente de la vía acuática a la economía nacional.

Pero en el sentido descrito, cien años después, el transitismo sigue siendo la forma específica de la formación social panameña. Eso no ha cambiado, pese a que nos hemos convertido en un país urbano en 80 a 90%, con más de la mitad de la población concentrada en área metropolitana (zona de tránsito), con una pujante economía capitalista dependiente, con el mayor crecimiento económico de América Latina en la última década, fundamentada en el comercio y los servicios financieros y comerciales, donde la agricultura representa apenas el 3% del PIB.

La diferencia estriba en que la administración despótica (antidemocrática) del recurso agua, a la que se refiere Guillermo Castro, ya no está en manos directas del enclave colonial norteamericano, el cual sigue controlando y fiscalizando por vías más sutiles (como los acuerdos de seguridad), y formalmente ha pasado a manos de la clase social criolla de comerciantes, especuladores inmobiliarias y financieros, tataranietos de aquellos comerciantes y especuladores que avalaron el Tratado Hay-Bunau Varilla.

En la base de la sociedad ya no prevalece una mayoría de pequeños productores del campo que practican una agricultura de subsistencia, acompañada de unos pocos artesanos urbanos junto a una masa de asalariados de origen extranjero. Los asalariados se han convertido en la clase absolutamente mayoritaria, en una simbiosis étnica entre los inmigrantes antillanos e interioranos que huyen de la decadencia del campo.

Transitismo y su fundamento jurídico actual

La base jurídica sobre la que se estructura la nueva relación del canal con el resto del país está, primero, en el propio Tratado Torrijos Carter de 1977, que permite la tutela solapada del imperialismo norteamericano a través de varios mecanismos, de los cuales el más importante es el llamado Pacto de Neutralidad, el cual, mediante sus enmiendas, establece el “derecho” de intervención militar norteamericana cuando, a su juicio unilateral se encuentre en peligro el “libre tránsito”. Pacto que nos coloca, como reconoció el general Omar Torrijos, “bajo el paraguas del Pentágono”.

El otro fundamento jurídico de la nueva relación del canal con el país es el Título XIV de la Constitución Política de la República de Panamá, “Sobre el Canal de Panamá”, introducido mediante reforma constitucional por la vía de dos asambleas legislativas en el año 1994, es decir, sin verdadero debate público ni referéndum.

El Título XIV crea la Autoridad del Canal de Panamá (ACP) que, de manera privativa administra el canal, sus actividades conexas y su cuenca hidrográfica (art. 316); establece su presupuesto de financiamiento anual que “no formará parte del Presupuesto General del Estado” (art. 320), es decir, como una “zona aparte”; en un “régimen laboral especial” (en que no se cumple el Código de Trabajo), que entre otras cosas prohíbe las huelgas (art. 322). Todas estas funciones son dirigidas por una Junta Directiva, que es la que nombra al Administrador y al Subadministrador.

El artículo 318 define la composición de la Junta Directiva de la ACP por once personas, nombradas así: un director que la preside, con calidad de ministro de estado nombrado por el Presidente de la República; un director nombrado por la Asamblea Nacional; nueve directores nombrados por el Presidente de la República, con acuerdo del Consejo de Gabinete y ratificados por el Órgano Legislativo, nombrados en grupos de 3, cada 3 años. Es decir, la Junta Directiva está compuesta por personas que han sido nombradas por el rejuego político de presidentes y partidos.

¿Algún miembro de la Junta Directiva es nombrado por los representantes del movimiento obrero organizado? No. ¿Alguno ha sido designado por los profesionales organizados en la Sociedad Panameña de Ingenieros y Arquitectos (SPIA)? No. ¿Alguno por las universidades? No. Alguno representa a nuestras comunidades campesinas e indígenas? Tampoco. ¿Cuántos panameños conocen a los integrantes de la Junta Directiva de la ACP? Casi nadie.

Una consulta a la web de la ACP muestra que, de los once miembros de la Junta Directiva de la ACP en 2014, casi todos son empresarios altamente conocidos vinculados al negocio de construcción e inmobiliario. El concepto empresario se queda corto, porque en realidad ellos pertenecen a la elite de los negocios del país.

Algunos sectores han empezado a plantear que es necesario modificar tanto la Constitución Política como la Ley Orgánica que crea la Autoridad del Canal para que el pueblo panameño, quien puso el pecho a las balas del imperialismo norteamericano en luchas como la del 9 de enero de 1964, pueda disponer de su administración, su Junta Directiva, su presupuesto, bajo la custodia real de la nación y sus representantes.

El cuestionado proyecto de ampliación del canal

En 2006, la Junta Directiva de la ACP, encabezada por el entonces administrador Alberto Alemán Zubieta, el gobierno del presidente Martín Torrijos y la mayor parte de los partidos con representación en la Asamblea Nacional, propusieron al país iniciar la construcción del tercer juego de esclusas que había sido considerado por los norteamericanos desde la década del 40 y que había sido dejado de lado.

Se presentó un proyecto con un costo aproximado de B/.5.200 millones, que debía inaugurarse justo al cumplirse los cien años de funcionamiento del canal. El objetivo expresado era el de dar cabida en el canal a los buques postpanamax a la vez que acelerar el tránsito creciente del comercio mundial por el Istmo.

En seguida la sociedad panameña se escindió en un gran debate respecto a si era oportuna o no la propuesta de ampliación del canal, como se ha llamado a la construcción del tercer juego de esclusas. Como el tema se sometió a referéndum, obedeciendo lo establecido por la Constitución Política de 1972, la opinión pública se polarizó en dos bloques: el Frente por el Sí y el Frente por el NO.

El Frente por el No, compuesto por organizaciones como Frenadeso, Fuerza Política Alternativa y el Movimiento Popular Unificado, se opuso al proyecto de ampliación presentado señalando: 1. Que era un proyecto sostenido sobre argumentos falsos, como que el canal estaba "obsoleto"; 2. Tenía debilidades en sus proyecciones financieras y los costos terminarían siendo superiores a los proyectados; 3. Que se desviaban recursos multimillonarios que deberían usarse para saldar la deuda social con el pueblo panameño, que sí luchó por la soberanía.

El resultado del referendo fue ambiguo, aunque fue interpretado por el gobierno y las autoridades como un aval a la ampliación, pues se abstuvo de votar el 70% de los electores y, de los que votaron, el 40% se pronunció por el NO.

En 2009, cuando la ACP adjudicó la obra al consorcio "Grupo Unidos por el Canal" (GUPC), compuesto por cuatro empresas, surgieron nuevas críticas que fueron desechadas por la ACP y el gobierno. Principalmente se señaló que Sacyr, la empresa española líder del consorcio GUPC, era una empresa que ya estaba tocada por la crisis inmobiliaria española y que existía un conflicto de intereses porque la empresa panameña CUSA (parte de GUPC) pertenece a la familia del entonces administrador Alberto Alemán Zubieta.

La obra se desarrolló con aparente normalidad hasta que Sacyr anunciara que el 20 de enero de 2014 se cumpliría el plazo impuesto por GUPC para suspender las obras de la ampliación del Canal de Panamá si la ACP no se comprometía a pagarles 1.600 millones de dólares de sobrecostos, equivalentes al 50% de lo pactado originalmente. Según el nuevo administrador del canal, Jorge Quijano el problema de Sacyr es que se encontraba "sin flujo de caja", "sin liquidez", es decir, descapitalizada.

Esto dio paso a una nueva ola de cuestionamientos: ¿Cómo era posible si la ACP le ha adelantado 2.831 millones de dólares de los 3.118 millones pactados en el contrato de 2009? GUPC había recibido a enero de 2014, el 76.4% de los fondos comprometidos, pero sólo había garantizado el 65% de las obras en las nuevas esclusas. Aún así, GUPC debía a subcontratistas, al menos, 238 millones de dólares.

La crisis se saldó provisionalmente con un acuerdo cuyas partes medulares permanecen en secreto, al igual que el contrato original y sus adendas. De lo que el público conoce, aparte de que la ACP debió adelantar algunos millones más para saldar la crisis de liquidez del consorcio, queda claro que GUPC no ha renunciado a recurrir a tribunales internacionales en demanda de sus pretendidos sobrecostos.

La soberanía sí se come

Pese a todas las controversias respecto a las formas más sutiles, pero no menos efectivas, de la tutela del imperialismo norteamericano sobre el país; pese a todos los debates que ha generado la forma administrativa que ha adoptado la ACP en el título XIV de la Constitución y en la ley orgánica; pese a las diferencias respecto al tema de la ampliación del canal; en lo que sí hay acuerdo entre los panameños y panameñas de todos los espectros es en los efectos positivos de la reversión del canal sobre el conjunto del país y su economía. Se han acallado las voces reaccionarias que se oponían a la retirada de los norteamericanos alegando que “la soberanía no se come”, pues se ha demostrado lo contrario.

Al momento de conmemorarse el primer siglo de funcionamiento del Canal de Panamá, el país vive bajo el signo de un boom económico sustentado, por un lado, en la especulación inmobiliaria, por otro, en el alto endeudamiento público para financiar grandes obras públicas, como la propia ampliación del canal o la construcción del metro y la mejora del sistema vial. Esta prosperidad relativa, encuentra gran parte de su fundamento en la reversión del canal en el año 2000 al estado panameño.

El canal, en particular a partir de 2007, ha entregado miles de millones al erario que han servido para catapultar las inversiones públicas, a la vez que, aunque no se lo reconozca expresamente, sirve de garante en última instancia (de prenda) al rápido crecimiento del endeudamiento estatal.

Desde la reversión del canal en el año 2000 hasta 2013, su administración entregó, entre aportes directos e indirectos, más de B/. 7.000 millones. De los cuales, 6.000 millones desde 2007, cuando inició el proyecto de ampliación. Compárese esa cifra con los 1.877 millones de dólares aportados por el canal entre 1913 y 2000 cuando su administración estaba bajo custodia del gobierno de Estados Unidos de América (ACP, 2013: 67-68).

La relación desigual impuesta por el enclave colonial era todavía peor, ya que la mayor parte los mil ochocientos millones de dólares que entraron al erario panameño fueron posteriores a la firma de los Tratados Torrijos Carter de 1977. Entre 1914 y 1970 Panamá sólo había recibido de las operaciones del canal 67 millones de dólares, mientras que la armada de los Estados Unidos, gracias a los peajes no pagados, obtuvo ahorros superiores a los 20,000 millones de dólares (Beluche, 1994: 16-17).

Tan sólo en 2013, el aporte fue de 981,8 millones de balboas, representando el 6% del PIB. De ese total, B/. 610,5 millones corresponden a excedentes de operación y B/. 371,2 millones corresponden a derechos por toneladas netas. Otros aportes indirectos (que incluyen salarios, impuestos y compras, entre otros rubros) suman otros B/. 1.755,1 millones ese año (ACP, 2013: 69).

Según la propia ACP, al momento de conmemorarse el centenario del Canal de Panamá, laboran en la vía 10.098 trabajadores (98% panameños). La ampliación genera otros 32.000 empleos directos e indirectos. La ACP declara poseer activos por B/. 9.429 millones, que generaron ingresos en 2013 por B/. 2.411,3 millones contra gastos de operación de B/. 733,8 millones para generar una utilidad neta de B/. 1.213 millones (50 centavos por cada balboa de ingreso) (ACP, 2013: 69-74).

Perspectivas

El problema de fondo, en este momento preciso de nuestra historia, es que la administración de la Autoridad del Canal de Panamá, y de la burguesía panameña, se resisten a una integración de la vía acuática que resuelva los desequilibrios sociales y ambientales que hemos heredado del enclave norteamericano. De hecho, la ACP sigue funcionando como un enclave, sin soldados norteamericanos, y el transitismo sigue siendo el mal que agobia la producción de los medios de vida, y la vida misma, del pueblo panameño.

El agua entre los mares, de Guillermo Castro Herrera, da cuenta de cómo la política de la ACP y sus decisiones al margen de la sociedad panameña, es la que ha inaugurado a partir de los años 90 la resistencia de las comunidades campesinas panameñas y los sectores populares contra las formas de apropiación de la naturaleza, los ríos, los embalses e hidroeléctricas, puestos en función de intereses oligárquicos, extranjeros y del transitismo. Esa creciente conflictividad social, generada por la persistencia del esquema transitista, amenaza la existencia misma del tránsito interoceánico, nos advierte G. Castro.

De ahí la necesidad urgente de que los sectores sociales emergentes, movimiento obreros y populares, construyamos una nueva propuesta de país en el que la zona de tránsito y el canal estén en función del desarrollo sostenible de la colectividad panameña. Desde nuestro punto de vista, esa propuesta tiene forzosamente que expresarse como proyecto político alternativo, popular, antioligárquico y antineoliberal.

Para hacer realidad lo sostenido por Federico Engels, citado en uno de los epígrafes del libro: “Sólo una organización consciente de la producción social, en la que se produzca y distribuya con arreglo a un plan, podrá elevar a los hombres, en el campo de las relaciones sociales, sobre el resto del mundo animal en la misma medida que la producción en general lo ha hecho con arreglo a la especie humana. Y el desarrollo histórico hace que semejante organización sea cada día más inexcusable y, al mismo tiempo, más posible” (Engels, 1961: 16-17).

La crisis que padece la sociedad humana en el siglo XXI, más que una crisis ambiental es una crisis social, que sólo puede resolverse por la vía política, que transforme la relaciones sociales capitalistas imperantes para que, transformando a la sociedad, pueda salvar a la naturaleza, superando la irracionalidad de la producción basada en la búsqueda desmedida la ganancia, dando lugar a formas más armoniosas de relación entre el sistema social y el sistema natural.

Referencias

1. Autoridad del canal de Panamá-ACP. Informe anual 2013. http: www.micanaldepanama.com/nosotros/sobre-la-acp/rendicion-de-cuentas/presu...
2. Beluche, Olmedo. Diez años de luchas políticas y sociales en Panamá (1980-1990). Impresos Tavial, S.A. Panamá, 1994.
3. Castro H, Guillermo. El agua entre los mares. Editorial Ciudad del Saber. Panamá, octubre de 2007.
4. Engels, Federico. Dialéctica de la naturaleza. Editorial grijalbo, S.A. México, D.F. 1961.
5. Pérez Morales, Carlos. El Canal de Panamá: Geopolítica y hegemonía de Estados Unidos hacia Panamá a partir de los Tratados Torrijos-Carter. Editorial Universitaria “Carlos Manuel Gasteazoro”. Panamá, 2011.