Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/10/2013, à 19:30

renaud07

Test nouveau PC : Proposez des défis

Bonsoir,

Pour tester ce qu'a dans les cœurs mon FX8350, je propose que vous me donniez des défis à relever comme par exemple :

-compiler un programme
-faire un rendu (vidéo, blender...)
...

Dans le cas de la compilation d'un programme, merci de donner tout les paquets et dépendances à installer. (je vois déjà le temps que je vais mettre pour nettoyer tout ça après lol)

Je ferais au maximum 5 défis donc s'il y en a plus, je choisirais ceux qui me semblent les plus pertinents.


À vous !

Dernière modification par renaud07 (Le 23/10/2013, à 19:42)


Fixe : AMD FX 8350 4Ghz - Asus M5A97 R2.0 - nVidia GT610 - RAM 8 Go - triple boot Ubuntu 18.04 MATE 64 bits / Manjaro MATE 17 64 bits / Windows 7 64 bits
Portable : Dell vostro 3550 - Intel core i5 2410M 2.30Ghz  - HD Gaphics 3000 - RAM 4 Go - dualboot Xubuntu 18.04 64 bits / Windows 7 64 bits

Hors ligne

#2 Le 23/10/2013, à 20:55

ssdg

Re : Test nouveau PC : Proposez des défis

Personnellement, j'ai testé récemment essayé de calculer toutes les sommes MD5 de 5 octets. ça m'a pris environ 8 h si je me souvient bien.
J'avait codé ça en java (on dira ce qu'on veut, le langage est moins consommateur en ressources que la légende veut le faire croire) et j'avait utilisé tout mes coeurs de processeur.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#3 Le 23/10/2013, à 21:11

godverdami

Re : Test nouveau PC : Proposez des défis

tu peux essayer superpi...version linux ici
et afficher tes résultats
Exemple: avec ma machine, superpi a 1 meg, (1 million de chiffres aprèss la virgule) le CPU met exactement 13 secondes


%NOINDEX%

Un peuple prêt à sacrifier un peu de liberté pour un peu de sécurité ne mérite ni l'une ni l'autre, et finit par perdre les deux.
Bonux lave plus blanc

Hors ligne

#4 Le 23/10/2013, à 21:36

renaud07

Re : Test nouveau PC : Proposez des défis

@tontonrobertettantirene : faut bien le lancer comme un script ce machin ? Car voilà ce que ça me dit :

renaud@desktop:~/Téléchargements$ ./super_pi
./super_pi : ligne 1 :  5074 Erreur de segmentation  (core dumped) ./pi $1

Fixe : AMD FX 8350 4Ghz - Asus M5A97 R2.0 - nVidia GT610 - RAM 8 Go - triple boot Ubuntu 18.04 MATE 64 bits / Manjaro MATE 17 64 bits / Windows 7 64 bits
Portable : Dell vostro 3550 - Intel core i5 2410M 2.30Ghz  - HD Gaphics 3000 - RAM 4 Go - dualboot Xubuntu 18.04 64 bits / Windows 7 64 bits

Hors ligne

#5 Le 23/10/2013, à 21:38

renaud07

Re : Test nouveau PC : Proposez des défis

ssdg a écrit :

Personnellement, j'ai testé récemment essayé de calculer toutes les sommes MD5 de 5 octets. ça m'a pris environ 8 h si je me souvient bien.
J'avait codé ça en java (on dira ce qu'on veut, le langage est moins consommateur en ressources que la légende veut le faire croire) et j'avait utilisé tout mes coeurs de processeur.

Intéressant mais bon si c'est aussi long ça va être dur de le faire hmm Par curiosité peux-tu me donner le code ?


Fixe : AMD FX 8350 4Ghz - Asus M5A97 R2.0 - nVidia GT610 - RAM 8 Go - triple boot Ubuntu 18.04 MATE 64 bits / Manjaro MATE 17 64 bits / Windows 7 64 bits
Portable : Dell vostro 3550 - Intel core i5 2410M 2.30Ghz  - HD Gaphics 3000 - RAM 4 Go - dualboot Xubuntu 18.04 64 bits / Windows 7 64 bits

Hors ligne

#6 Le 24/10/2013, à 10:37

billou

Re : Test nouveau PC : Proposez des défis

renaud07 a écrit :

Erreur de segmentation  (core dumped)

Ma hantise sous Linux, combien de fois j'ai pu tomber sur des logiciels avec ce message, à cause de changements mineurs ou majeurs au niveau des librairies... Alors qu'avec des librairies embarquées, y'a rarement ce souci.
Bon après je sais qu'on ne veut pas de librairies en doublon... Mais pour certains logiciels, c'est parfois nécessaire, c'est d'autant plus chiant quand les nouvelles versions n'assurent pas de compatibilité avec l'ancienne...

Dernière modification par billou (Le 24/10/2013, à 10:41)

Hors ligne

#7 Le 24/10/2013, à 15:30

HP

Re : Test nouveau PC : Proposez des défis

billou a écrit :
renaud07 a écrit :

Erreur de segmentation  (core dumped)

Ma hantise sous Linux, combien de fois j'ai pu tomber sur des logiciels […]

Distribués sans sources… donc, bon ! C'est pas trop fait pour.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#8 Le 24/10/2013, à 17:26

billou

Re : Test nouveau PC : Proposez des défis

HP a écrit :
billou a écrit :
renaud07 a écrit :

Erreur de segmentation  (core dumped)

Ma hantise sous Linux, combien de fois j'ai pu tomber sur des logiciels […]

Distribués sans sources… donc, bon ! C'est pas trop fait pour.

Pas forcément non justement, il s'agit plutôt de logiciels que ne soient plus ou peu entretenus et avec usage spécifique, uniques en leur genre.

Dans le même genre, j'adore les programmes "basiques" développés en python, emesene à l'époque de sa branche 1.xx en était un bon exemple, mais je peste à mort face aux soucis de compatibilité des nouvelles versions de python avec les fonctions de l'ancienne... À chaque nouvelle version d'ubuntu c'est pareil, python a été mis à jour, et les programmes pas dispo dans les dépôts et pas forcément mis à jour, ne suivent plus.

Hors ligne

#9 Le 24/10/2013, à 17:31

HP

Re : Test nouveau PC : Proposez des défis

Rooooooooooh, la vie est dure ! tongue


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#10 Le 26/10/2013, à 03:04

ssdg

Re : Test nouveau PC : Proposez des défis

Pour le code:
Je tiens à rappeller que je n'ai pas voulu le rendre lisible, conforme à un standard quelconque ni même à maintenir les noms de mes variables cohérents avec les évolutions de mon algo. (oui, c'est mal.)

package fr.octopoid.ssdg.stringtools.brute;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import org.apache.commons.codec.binary.Hex;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class searchForMD5Sums {
    private static final String findableString = "bonj";
    private static final byte[] target = searchForMD5Sums.buildDigest().digest(
            searchForMD5Sums.findableString.getBytes());

    // ici, ton nombre de coeurs proc (-1 si tu veux pouvoir utiliser ta
    // machine)
    private static final int MAX_POOL_SIZE = 7;

    // Ici, un nombre choisi au pifomètre pour éviter un overhead entre chaque
    // test de combinaisons
    private static final int BATCH_SIZE = 65536;

    // j'utilise un logger. System.out serait tout aussi bien.
    static final Logger l = LoggerFactory.getLogger(searchForMD5Sums.class);

    // Là, le CallerRunsPolicy est la partie intéressante, Elle évite d'ignorer
    // des jobs.
    static final ThreadPoolExecutor threadPoolExecutor =
            new ThreadPoolExecutor(searchForMD5Sums.MAX_POOL_SIZE,
                    searchForMD5Sums.MAX_POOL_SIZE, 30, TimeUnit.SECONDS,
                    new LinkedBlockingQueue<Runnable>(
                            searchForMD5Sums.MAX_POOL_SIZE * 100),
                    new ThreadPoolExecutor.CallerRunsPolicy());

    /**
     * pousse un ensemble de lots de calculs et le prochain AddNextWork (des
     * fois qu'on aie pas trouvé)
     */
    private static final class AddNextWork implements Runnable {
        // Je travaille avec des BigInteger parceque je ne voulais pas
        // me limiter aux 2^64 premiers essais et que faire soit même
        // le calcul du tableau de Bytes était fastidieu.
        private final BigInteger nextTry;

        private AddNextWork(final BigInteger nextTry) {
            this.nextTry = nextTry;
        }

        /**
         * Ajoute 8 lots de calculs avant d'ajouter la tâche insérant les 8 lots
         * d'après.
         */
        @Override
        public void run() {
            for (int a = 0; a < 8; a++) {
                searchForMD5Sums.threadPoolExecutor.execute(new MD5Runnable(
                        this.nextTry.add(BigInteger
                                .valueOf(searchForMD5Sums.BATCH_SIZE * a))));
            }
            final AddNextWork nextCommand =
                    new AddNextWork(this.nextTry.add(BigInteger
                            .valueOf(searchForMD5Sums.BATCH_SIZE * 8)));
            searchForMD5Sums.threadPoolExecutor.execute(nextCommand);
        }
    }

    // Que je sache, MessageDigest n'est pas thread safe, du coup, Threadlocal
    // en crée un par thread.
    private static final ThreadLocal<MessageDigest> local =
            new ThreadLocal<MessageDigest>() {
                @Override
                protected MessageDigest initialValue() {
                    return searchForMD5Sums.buildDigest();
                };
            };

    /**
     * Traite un lot de calculs de sommes MD5 et arrête le travail si la chaine
     * d'entrée est trouvée.
     */
    private static final class MD5Runnable implements Runnable {
        private final BigInteger string;

        private MD5Runnable(final BigInteger bigInteger) {
            this.string = bigInteger;
        }

        @Override
        public void run() {
            final MessageDigest messageDigest = searchForMD5Sums.local.get();
            for (int add = 0; add < searchForMD5Sums.BATCH_SIZE; add++) {
                final byte[] toTest =
                        this.string.add(BigInteger.valueOf(add)).toByteArray();
                final byte[] digest = messageDigest.digest(toTest);
                if (Arrays.equals(searchForMD5Sums.target, digest)) {
                    searchForMD5Sums.l.info(" {} - {} ", new String(toTest),
                            Hex.encodeHexString(digest));
                    searchForMD5Sums.threadPoolExecutor.shutdownNow();
                    break;
                }
            }

        }
    }

    public static void main(final String[] args) throws InterruptedException {
        final long start = System.currentTimeMillis();
        searchForMD5Sums.threadPoolExecutor.execute(new AddNextWork(
                BigInteger.ZERO));
        searchForMD5Sums.threadPoolExecutor.awaitTermination(Long.MAX_VALUE,
                TimeUnit.DAYS);
        searchForMD5Sums.l.info("Run Time : {}",
                (System.currentTimeMillis() - start) / 1000);
    }

    private static MessageDigest buildDigest() {
        try {
            return MessageDigest.getInstance("MD5");
        } catch (final NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;// oui, c'est de la lâcheté que de transformer une vrai
                        // exception en une nullpointerexception. Heureusement,
                        // ceci est du code jouet
        }
    }
}

s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#11 Le 27/10/2013, à 00:35

Grünt

Re : Test nouveau PC : Proposez des défis

Mine des bitcoins tongue


Red flashing lights. I bet they mean something.

Hors ligne