Skip to main content

the avatar of Iterativo e Incremental
a silhouette of a person's head and shoulders, used as a default avatar

The effect of CPU, link-time (LTO) and profile-guided (PGO) optimizations on the compiler itself

 In other words, how much faster will a compiler be after it's been built with various optimizations?

Given the recent Clang12 release, I've decided to update my local build of Clang11 that I've been using for building LibreOffice. I switched to using my own Clang build instead of openSUSE packages somewhen in the past because it was faster. I've meanwhile forgot how much faster :), and openSUSE packages now build with LTO, so I've built Clang12 in several different ways to test the effect and this is it:


The file compiled is LO Calc's document.cxx, a fairly large source file, in a debug LO build. The compilation of the file is always the same, the only thing that differs is the compiler used and whether LO's PCH support is enabled. And the items are:

  1. Base - A release build of Clang12, with (more or less) the default options.
  2. CPU - As above, with -march=native -mtune=native added.
  3. LTO - As above, with link-time optimization used. Building Clang this way takes longer.
  4. LTO+PGO - As above, also with profile-guided optimization used. Building Clang this way takes even longer, as it needs two extra Clang builds to collect the PGO data.
  5. Base PCH - As Base, and the file is built with PCH used.
  6. LTO+PGO PCH - As LTO+PGO, again with PCH used.

Or, if you want this as numbers, then with Base being 100%, CPU is 85%, LTO is 78%, LTO+PGO is 59%, Base PCH is 37% and LTO+PGO PCH is 25%. Not bad.

Mind you, this is just for one randomly selected file. YMMV. For the build from the video from the last time, the original time of 4m39s with Clang11 LTO PCH goes down to 3m31s for Clang12 LTO+PGO PCH, which is 76%, which is consistent with the LTO->LTO+PGO change above.


 

a silhouette of a person's head and shoulders, used as a default avatar

Juegos en GCompris – A fondo @g_compris (7)

Sigo aprovechándome de una publicación de Valencia Tech en la que se realizaba un listado completo de juegos que ofrece GCompris he empezado una serie donde se describen con más detalles las actividades. Seguimos la serie con la sección de «Juegos» en GCompris la cual tiene como objetivo hacernos pasar buenos momentos y distraernos un rato.

Juegos en GCompris – A fondo @g_compris (7)

Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.

Ya hemos descrito la secciones de:

Es hora de hablar de las actividades de la sección «Juegos» de GCompris, más de una decena de miniaplicaciones pensadas para divertirnos aunque nos podamos encontrar con alguna que otra que introduce la programación para niños.

Fútbol: simple juego donde debemos meter un gol a Tux dando «patadas» virtuales a nuestro balón.

Juegos en GCompris – A fondo @g_compris (7)

Laberinto: guiamos a Tux con el teclado para que llegue al final del laberinto. Se utilizando las flechas del teclado.

Juego de memoria con imágenes contra Tux: el clásico busca tu pareja en el que competiremos contra la máquina, que en este caso está personalizado en Tux.

Juego de memoria con imágenes: el clásico busca tu pareja pero en esta ocasión jugando en modo solitario.

Juegos en GCompris – A fondo @g_compris (7)

Herramienta sencilla de dibujo vectorial: utilizando una cuadrícula y diversos colores podemos crear simples dibujos. Creatividad al máximo.

Inclina la caja: el simple juego de equilibrio se puede adaptar al ordenador sin utilizar giroscopios simulando el movimiento en 3D con el teclado direccional.

Hexagono: un simple «encuentra» la fruta utilizando como pistas los colores de los hexágonos, de verde que significa «frío» a rojo «caliente».

Juegos en GCompris – A fondo @g_compris (7)

Cazador de fotografías: encuentra las diferencias entre dos imágenes y afina tus dotes de observación.

Laberinto relativo: juego similar al Laberinto que hemos comentado anteriormente pero que en esta ocasión se cambia el punto de vista a Tux: izquierda y derecha se utilizan para girar y la flecha de arriba para avanzar.

Juegos en GCompris – A fondo @g_compris (7)

Programación en el laberinto: guía a Tux para que llegue a su destino indicando previamente las órdenes que seguirá. Un más que interesante juego que ayuda a los más pequeños a iniciarse en el mundo de la programación.

Juegos en GCompris – A fondo @g_compris (7)

Laberinto invisible: otro laberinto pero con la diferencia de que no veremos las paredes a menos que pinchemos en el mapa, pero en ese momento no podremos movernos. Además, la dificultad va aumentando con cada nivel.

a silhouette of a person's head and shoulders, used as a default avatar

Streaming con Software Libre, nueva charla de GNU/Linux València

Me congratula promocionar una nueva actividad de la Asociación GNU/Linux València que lleva por título «Streaming con Software Libre» que se va a realizar online, como no, el próximo 30 de abril. Más información, sigue leyendo.

Streaming con Software Libre, nueva charla de GNU/Linux València

Estos tiempos pandémicos han puesto de manifiesto que las webconferencias son algo muy importante ahora en nuestra vida y, según mi punto de vista, se han implantado para quedarse ya que a partir de ahora será un recurso mucho más utilizado en nuestro presente.

Streaming con Software Libre, nueva charla de GNU/Linux València

Es por ello que me complace compartir con vosotros un nuevo evento del grupo de personas que en València está impulsado el Software Libre gracias a sus reuniones tanto presenciales, cuando se podía, y ahora mismo de forma virtual.

Es por ello que os invito a la webconferencia «Streaming con Software Libre» a cargo de David Marzal que nos explicará la forma de realizar el streaming de cualquier evento o charla utilizando exclusivamente Software libre. Parecía que solo estaba al alcance de plataformas privativas, pero hay opciones libres que dan un resultado tan satisfactorio o mejor.

Resumiendo, la información básica es:

Si podéis asistir no os lo perdáis, seguro que no quedáis decepcionados.

Más información: GNU/Linux València

¡Únete a GNU/Linux València!

Aprovecho para recordar que desde hace unos meses, los chicos de GNU/Linux Valencia ya tienen su menú propio en el blog, con lo que seguir sus eventos en esta humilde bitácora será más fácil que nunca, y así podréis comprobar su alto nivel de actividades que realizan que destacan por su variedad.

Y que además, GNU/Linux València ha crecido y se ha ¡¡¡convertido en asociación!!! Así que si buscas una forma de colaborar con el Software Libre, esta asociación puede ser tu sitio. ¡Te esperamos!

the avatar of Alessandro de Oliveira Faria

Certiface 3D com RealSenseID

RealSenseID resumidamente é similar ao Face ID do iPhone, utiliza criptografia assim protegendo os dados do usuário. Com esta tecnologia podemos proporcionar o desbloqueio de forma natural e sem fricção operacional. O processamento é embarcado e trabalha de maneira híbrida (software e hardware) utilizando o sensor de profundidade junto a inteligência artificial.

Facial authentication module ID Solution F450 dimensions

O processamento 2D e 3D é superior aos métodos de autenticação tradicionais pois apresenta tecnologia anti-spoofing, assim protegendo os usuários contra falsas tentativas de autenticação por meio de fotografias, vídeos ou máscaras, onde a taxa de falsa aceitação de 1 em 1 milhão.

Facial authentication peripheral ID Solution F455 dimensions

O hardware conta com o processamento em cenários com condições de iluminação distintas (ambientes internos ou externos, dia ou noite), graças ao sensor infravermelho integrado.

EM BREVE NOVIDADES…

a silhouette of a person's head and shoulders, used as a default avatar

#openSUSE Tumbleweed revisión de la semana 15 de 2021

Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

Tumbleweed

openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.

Hagamos un repaso a las novedades que han llegado hasta los repositorios estas semanas.

El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:

Esta semana openQA ha tenido mucho trabajo encontrando errores para impedir que estos lleguen a los repositorios de las personas que disfrutamos de openSUSE Tumbleweed.

Así que solo se han publicado un par de snapshots (0408 and 0414). Aunque estos han traído paquetes tan suculentos como…

Mejor vamos a repasarlos en conjunto:

  • openSSL 1.1.1k
  • systemd 246.13
  • libvirt 7.2.0
  • KDE frameworks 5.81.0
  • KDE Plasma 5.21.4
  • GNOME 40.0
  • GStreamer 1.18.4
  • Linux kernel 5.11.12
  • Ruby 2.7.3 y Ruby 3.0.1

Y próximamente podremos disfrutar de actualizaciones como:

  • LXQt 0.17.0
  • Módulos de Python 3.9. Aunque Python 3.8 seguirá siendo la versión predeterminada
  • Linux kernel 5.11.14+
  • LibreOffice 7.1.2.2
  • GCC 10.3.0
  • GCC 11 como compilador predeterminado

Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

Mantente actualizado y ya sabes: Have a lot of fun!!

Enlaces de interés

Geeko_ascii

——————————–

a silhouette of a person's head and shoulders, used as a default avatar

openSUSE Tumbleweed – Review of the week 2021/15

Dear Tumbleweed users and hackers,

After I left you and Tumbleweed in the capable hands of Richard for two weeks, it is good to be back. The week has seen a slightly lower count of published snapshots, but only because openQA was nice enough to find bugs that we did not you having to fight with. So, we only released two snapshots (0408 and 0414). As usual, the large gap means a few snapshots were tested in between, and things accumulated.

As a result, we managed to deliver these updates to the users:

  • openSSL 1.1.1k
  • systemd 246.13
  • libvirt 7.2.0
  • KDE frameworks 5.81.0
  • KDE Plasma 5.21.4
  • GNOME 40.0
  • GStreamer 1.18.4
  • Linux kernel 5.11.12
  • Ruby 2.7.3 and Ruby 3.0.1

Staging projects are busy, but luckily with a bit of space to actually stage new requests. The main changes currently being tested and coming to you in the future are:

  • LXQt 0.17.0
  • Python 3.9 modules: besides python36-FOO and python38-FOO, we are testing to also shop python39-FOO modules; we already have the interpreter after all. Python 3.8 will remain the default for now. Building in snapshot 0415
  • Linux kernel 5.11.14+
  • LibreOffice 7.1.2.2
  • UsrMerge is progressing well, thanks to Ludwig for his continued work here
  • GCC 10.3.0
  • GCC 11 as the default compiler
a silhouette of a person's head and shoulders, used as a default avatar

Historia y Geografía en GCompris – A fondo @g_compris (6)

Sigo aprovechándome de una publicación de Valencia Tech en la que se realizaba un listado completo de juegos que ofrece GCompris he empezado una serie donde se describen con más detalles los juegos. Seguimos la serie con la sección de conjunto de «Historia y geografía» en GCompris la cual, evidentemente, nos ofrece conocimientos sobre estas dos disciplinas.

Historia y Geografía en GCompris – A fondo @g_compris (6)

Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.

Ya hemos descrito la sección de «Descubre la computadora». los «Juegos de lógica«, las «Bellas Artes«, la «Música» y «Experimenta«, es hora de hablar de la actividades de la sección «Historia y geografía» en GCompris.

Familia: una actividad donde aprenderemos las relaciones que hay entre las personas de una familia. Nosotros somos la persona del círculo blanco y debemos decir quien es la persona del círculo naranja

Señala los familiares: actividad parecida a la anterior donde debemos ir seleccionando la pareja que cumple la relación deseada. En el ejemplo inferior sería el padre (seleccionado en naranja) y el único hijo que aparece.

Historia de Louis Braille: en una serie de pantallas va apareciendo la historia del creador del sistema Braille y al finalizar las mismas tendremos una pequeña actividad donde debemos reordenar los hechos más importantes de su vida.

Números romanos: una excelente forma de ir aprendiendo los número romanos, los cuales ahora están en entredicho por su «dificultad».

Chronos: sencilla aplicación en la que debemos reordenar algunas imágenes de forma cronológica. Ideal para ordenar ideas.

Ubica países y Ubica regiones: las dos actividades de geografía, que me parecen pocas aunque pensemos que KDE tiene KGeography y Marble para este tipo de aplicaciones, donde debemos situar este tipo de organización territorial en su lugar correcto.

a silhouette of a person's head and shoulders, used as a default avatar

packagesの説明文書を訳しつつ、使えるものを探してみました(T編)

前回は Q でしたが、今回は T です。

パッケージ名 tcptraceroute
バージョン tcptraceroute-1.5.beta7-lp152.48.5
動作 ○
詳細
tcp を使った traceroute と同等の機能を実行するツールです。ICMP ではなくて、TCPで特定のポートを叩く形で traceroute 相当の出力を表示します。インストール時にはlibnet9-1.2~rc3-lp152.3.4 も必要となります(自動でインストールされます)。また、Thumbleweed には入っていません。LEAP のみです。
とあるサーバにtraceroute をしてみてもうまく動かなかったのですが、ポート 22 を指定して tcptraceroute を実行したところ、うまく表示できました。

% traceroute -n 210.171.174.178
traceroute to 210.171.174.178 (210.171.174.178), 30 hops max, 60 byte packets
 1  172.31.255.254  0.875 ms  0.529 ms  0.612 ms
 2  124.155.82.121  26.090 ms  25.900 ms  25.712 ms
 3  124.155.82.69  25.762 ms  25.571 ms  25.651 ms
 4  124.155.82.2  25.465 ms  25.627 ms  25.441 ms
 5  202.224.52.170  62.408 ms  62.183 ms  61.993 ms
 6  202.224.52.5  24.652 ms  27.474 ms  27.147 ms
 7  202.224.52.13  27.300 ms  16.913 ms  16.556 ms
 8  203.190.230.13  16.553 ms  16.760 ms  16.508 ms
 9  61.211.190.90  16.626 ms  16.458 ms 61.211.190.98  16.564 ms
10  219.124.151.210  16.147 ms  20.514 ms  19.783 ms
11  210.171.170.10  19.491 ms  19.283 ms  8.395 ms
12  210.171.170.34  7.396 ms  18.154 ms  17.967 ms
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

% tcptraceroute -n 210.171.174.178 22
Selected device eth0, address 172.31.255.189, port 57123 for outgoing packets
Tracing the path to 210.171.174.178 on TCP port 22 (ssh), 30 hops max
 1  172.31.255.254  0.614 ms  0.723 ms  0.702 ms
 2  124.155.82.121  4.183 ms  3.435 ms  3.461 ms
 3  124.155.82.69  4.362 ms  4.036 ms  3.909 ms
 4  124.155.82.2  3.690 ms  3.572 ms  4.257 ms
 5  202.224.52.170  6.843 ms  6.607 ms  10.887 ms
 6  202.224.52.5  6.634 ms  6.954 ms  6.597 ms
 7  202.224.52.13  5.601 ms  4.822 ms  5.065 ms
 8  203.190.230.13  5.674 ms  6.073 ms  7.402 ms
 9  61.211.190.90  6.423 ms  5.553 ms  6.690 ms
10  219.124.151.214  5.680 ms  6.735 ms  5.742 ms
11  210.171.170.10  6.646 ms  6.523 ms  7.012 ms
12  210.171.170.34  5.233 ms  7.322 ms  6.962 ms
13  192.168.3.252  10.616 ms  6.878 ms  10.268 ms
14  210.171.174.178 [open]  8.053 ms * *

ただ、万能ではないようです。Azure の中にある仮想マシンに、 tcptraceroute をポート 3389 や port 22 で実行してみたのですが、やはり繋がりませんでした。

パッケージ名 tdiff
バージョン tdiff-0.8.5-3.6.x86_64
動作 ◎
詳細
ディレクトリの比較をするコマンドです。diff とは違い、ファイルの差分を取るわけではありません。ディレクトリ中のファイルについて、日付や属性などを比較するためのツールです。たとえば、このような感じになります。

# tdiff . /home/ribbon
tdiff: (top-level): mode: 0700 0755
tdiff: (top-level): uid: root(0) ribbon(1000)
tdiff: (top-level): gid: root(0) users(100)
tdiff: (top-level): nlink: 9 21
tdiff: .bash_history: uid: root(0) ribbon(1000)
tdiff: .bash_history: gid: root(0) users(100)
tdiff: .bash_history: size: 1382 3546
tdiff: .bash_history: contents differ
tdiff: .bashrc: only present in /home/ribbon
tdiff: .cache: uid: root(0) ribbon(1000)

また、-v オプション( -vv,-vvv,-vvvv もあります)を指定すると統計情報を出力します。

tdiff: inode cache statistics:
 Hashing statistics for inode cache (@0x55916e3e4610):
    Table size              :      101
    Entry count             :       11
    Occupied buckets        :       10
    Distribution efficiency :    90.91%
    Average bucket length   :      1.1
    Max bucket length       :        2
tdiff: end

そのほかにもオプションが多数あります。数字の0 から 9 までのオプションを指定すると、チェックする項目が徐々に増えていくようになっています。

# tdiff -0 .local /home/ribbon/.local
# tdiff -1 .local /home/ribbon/.local
tdiff: share/RecentDocuments: only present in /home/ribbon/.local
tdiff: share/baloo: only present in /home/ribbon/.local
tdiff: share/flatpak/.changed: only present in .local
(略)
# tdiff -2 .local /home/ribbon/.local
tdiff: (top-level): mode: 0755 0700
tdiff: share/RecentDocuments: only present in /home/ribbon/.local
tdiff: share/baloo: only present in /home/ribbon/.local
tdiff: share/flatpak: mode: 0700 0755
tdiff: share/flatpak/.changed: only present in .local
(略)
# tdiff -3 .local /home/ribbon/.local
tdiff: (top-level): mode: 0755 0700
tdiff: (top-level): uid: root(0) ribbon(1000)
tdiff: (top-level): gid: root(0) users(100)
tdiff: share: uid: root(0) ribbon(1000)
tdiff: share: gid: root(0) users(100)
tdiff: share/RecentDocuments: only present in /home/ribbon/.local
tdiff: share/baloo: only present in /home/ribbon/.local
tdiff: share/flatpak: mode: 0700 0755
tdiff: share/flatpak: uid: root(0) ribbon(1000)
tdiff: share/flatpak: gid: root(0) users(100)
tdiff: share/flatpak/.changed: only present in .local
(略)

tdiff は、ファイルの有無や、属性の違いなどを一気に調べるときに便利に使えそうです。

the avatar of openSUSE News

GNOME 40, KDE Frameworks, Plasma Update in Tumbleweed

Two openSUSE Tumbleweed snapshots were released since last week’s blog.

The snapshots brought the much anticipated GNOME 40 as well as an update of KDE Frameworks 5.81.0, Plasma 5.21.4 and several other packages.

The 20210414 snapshots was a monster; the amount of packages updated in the snapshot was ginormous. The update to GNOME 40 brought some significant changes to the desktop environment. New visual changes with rounded corners, and gestures like a three-finger swipe to move between workspaces were among the improvements in the release. The app launcher is more customizable and more intuitive to navigate with a mouse. Another desktop environment that was updated in the snapshot was Plasma 5.21.4, which had color scheme fixes and a fix for a broken keyboard configurations with single layout on Wayland. The release also set the preferred aspect ratio to “21:9” over “64:27” with KScreen. KDE Frameworks 5.81.0 added high-brightness and low-brightness Breeze Icons and the user interface builder Kirigami fixed a potential crash in the SizeGroup. Even Xfce had in update in the snapshot; this update in the xfce4-settings 4.16.1 package fixed scaling and updated translations. Dependencies were update in the upgrade to nodejs15 15.14. There was a minor fix for the cups printing package and xterm 367 updated some patches and improved responsiveness of the terminal. Linux Kernel 5.11.12 arrived in the snapshot and had several Advanced Linux Sound Architecture fixes and a commit for a nosy driver with Common Vulnerabilities and Exposures (CVE)2021-3483. Both ruby2.7 and ruby3.0 received minor updates to fix an XML vulnerability and GStreamer 1.18.4 fixed mpeg-2 video handling and a memory leak. Several YaST packages also had updates.

A major version update of audacity 3.0.0 arrived in snapshot 20210408. The format to save Audacity projects was changed and a new analyzer called Label Sounds can label sounds and silences for more effective use of the application. Less than a handful of CVEs were updated in curl 7.76.0; the command line tool strips credentials from the auto-referer header field and adds support to read and store the referrer header. An update of systemd 246.13 had some changes to handle large packets more gracefully and rubygem-rubocop 1.12.1 had an enormous amount of fixes jumping from version 1.8.1. Another package that received a large amount of updates was vim 8.2.2725; there were fixes for a memory leak when compiling and a fix for hangs with the terminal when resized. The xf86-input-libinput package moved from version 0.30.0 to 1.0.0 and its biggest change was the change to an MIT Licence. Other packages updated in the snapshot were bind 9.16.12, fwupd 1.5.8 and openssl 1.1.1k, which fixed CVE-2021-3450 that had a problem with verifying a certificate chain when using a certain flag.