Profile

Cover photo
Jukka Suomela
194 followers|198,376 views
AboutPostsPhotos+1's

Stream

Jukka Suomela

Shared publicly  - 
 
Now that was unexpected. I use Homebrew and install Python 2 and Python 3 as usual, the end result being that "python" = "python2", and there is a separate command "python3". It also installs "pip" = "pip2", and there is a separate command "pip3". So far so good, this is how it always used to be.

Then I do:

pip install --upgrade pip setuptools
pip3 install --upgrade pip setuptools

And now all of sudden "pip" = "pip3".

It took a while to figure out why after "pip install foo" module "foo" does not seem to be available...

#python   #homebrew   #pip  
1
Add a comment...

Jukka Suomela

Shared publicly  - 
 
Dear Google, how hard can it be to fix a silly bug like this: https://code.google.com/p/android/issues/detail?id=157238

Apparently all timestamps in all DNG photos produced by any Android phone that supports the new camera API are garbage. Reported three months ago. No fix, no workaround.

#google   #android   #dng  
1
Add a comment...

Jukka Suomela

Shared publicly  - 
 
Things are getting interesting. Apple is hiring GPU programmers for positions here in Helsinki, Finland.

#gpu   #apple   #helsinki  
GPU Compute Engineer at Apple in Finland (Helsinki). Browse open positions at Apple and apply today.
5
Add a comment...

Jukka Suomela

Shared publicly  - 
 
 
PODC 2015 registration is now open, early registration deadline 22 June 2015http://www.podc.org/podc2015/registration/

Student travel grants available, deadline 5 June 2015http://www.podc.org/podc2015/student-grants/

#PODC2015Spain   #distributedcomputing  
1 comment on original post
1
Add a comment...

Jukka Suomela

Shared publicly  - 
 
Our new course "Programming Parallel Computers" is soon over — all material is now available online.

This was an optional Master-level course, and I was expecting just a handful of students, but I was positively surprised to see that we got more than 90 registrations. And based on the preliminary course feedback, there clearly was lots of demand for this kind of course.

This was a practical hands-on course, during which the students learned how to actually get the best possible performance out of modern CPUs and GPUs. In many cases, students started with implementations that used less than 1% of the theoretical performance of the CPU, and after learning about instruction-level parallelism, vectorisation, multithreading, and efficient use of caches, they were able to get more than 50% of the theoretical maximum performance, in non-trivial practical applications.

It was a lot of work to put together this kind of a course, but I also got lots of expert help with it. We had two other lecturers who helped especially with the parts related to GPU programming: Samuli Laine from Nvidia, and Jaakko Lehtinen who is affiliated with both our university and Nvidia.

Our course was also supported by the kind folks at CSC (the Finnish center for scientific computing), who put together a new frontend for their cloud service so that it is easy to provide our students with access to CSC's high-end servers — many thanks in particular to Aleksi Kallio, Olli Tourunen, Harri Hämäläinen, and Kalle Happonen.

I would also like to thank Aalto IT people who kindly tolerated my numerous requests for software installations and configuration changes for our classroom computers. And finally, many thanks to my teaching assistants, +Joel Rybicki and +Tuomo Lempiäinen, who did most of the hard work related to e.g. the grading of the exercises!

#parallelcomputing   #parallelprogramming   #simd   #openmp   #cuda   #AaltoUni  
Overview. This is a practical hands-on course on algorithm engineering for modern parallel computers. You will learn how to design programs that make the best possible use of the computing power of multicore CPUs and GPUs.
10
1
Ed S's profile photo
Ed S
 
That's great - reshared into Computer Science, Seriously at
https://plus.google.com/u/0/communities/111381551813675174408
Add a comment...

Jukka Suomela

Shared publicly  - 
 
 
Did you know you could get bibtex directly from a doi? It's called DOI content negotiation and it can do a lot of other really cool tricks.

I don't know how to do get bibtex from the browser but this works on the command line:

curl -LH "Accept: application/x-bibtex" http://dx.doi.org/10.1007/s11083-012-9252-6

Here is the magic output:

@article{Dorais_2012,
doi = {10.1007/s11083-012-9252-6},
url = {http://dx.doi.org/10.1007/s11083-012-9252-6},
year = 2012,
month = {mar},
publisher = {Springer Science $\mathplus$ Business Media},
volume = {30},
number = {2},
pages = {415--426},
author = {Fran{\c{c}}ois Gilbert Dorais and Steven Gubkin and Daniel McDonald and Manuel Rivera},
title = {Automorphism Groups of Countably Categorical Linear Orders are Extremely Amenable},
journal = {Order}
}

http://www.crosscite.org/cn/
DOIs provide a persistent link to content. They identify many types of work, from journal articles to research data sets. Typically, someone interacting with DOIs will be a researcher, who will resolve DOIs found in scholarly references to content using a DOI resolver. Such researchers may not ...
1 comment on original post
2
Add a comment...

Jukka Suomela

Shared publicly  - 
 
In the exercises of my parallel programming course, our students came across with a piece of code that does not perform as well as it should. This turned out to be a fairly interesting example of compilers doing optimisations that are too clever.

In brief, here the compiler should have trusted that CPUs know how to do branch prediction. Using branch predication (e.g. conditional moves) just makes things much worse.

#gcc  
C++ code. This is the performance-critical inner loop from a student's solution to task IS1. Original version. for (int y0=0; y0<=ny-h; y0++) { for (int x0=0; x0<=nx-w; x0++) { y1 = y0 + h; x1 = x0 + w; vXc = S00[y1*snx + x1] - S00[y1*snx + x0] - S00[y0*snx + x1] + S00[y0*snx + x0]; ...
5
Pat Morin's profile photoJukka Suomela's profile photo
3 comments
 
And in case someone is wondering:

(1) I tried to use __builtin_expect to tell GCC that the condition is expected to be false. This did not make any difference.

(2) I tried to use -fno-if-conversion and -fno-if-conversion2 to disable branch predication. This did not make any difference here, either.

Apparently certain code patterns just look like too good candidates for predication.
Add a comment...
Have them in circles
194 people
Oscar Morales's profile photo
Nelka Arosha's profile photo
Joel Kaasinen's profile photo
Pat Morin's profile photo
hengxin1102's profile photo
Akinori Kawachi's profile photo
Jussi Pakkanen's profile photo
John Scott's profile photo
Henning Hasemann's profile photo

Jukka Suomela

Shared publicly  - 
 
Google is apparently finally fixing app permissions in Android. You can actually choose what permissions to give to which app.

#android   #googleio  
Today is the first day of Google I/O, the company’s annual conference where they announce what’s coming in the next year. We’re here at the keynote, and we’ll be liveblogging it for you, starting now. Keep hitting refresh to get the latest updates!
10
Jari Juslin's profile photo
 
!!! 
Add a comment...

Jukka Suomela

Shared publicly  - 
 
I wanted to compile and run a simple program that uses the SDL graphics library (https://www.libsdl.org/) on OS X.

SDL is a simple cross-platform library that makes it easy to write portable graphical applications. Unfortunately, all tutorials and quickstart guides for SDL + OS X instructed me to download some kind of framework, install it, then create a new SDL project in Xcode, and then do this and that in the Xcode user interface...

It is much simpler than that (at least if you are already using Homebrew and Meson), and you do not need to touch any kind of GUI:

1. Install SDL with Homebrew (http://brew.sh/): "brew install sdl2".

2. Write a C++ program that uses SDL. Let's call it "test.cc".

3. Write a Meson (http://mesonbuild.com/) build file "meson.build" with the following three lines:

project('sdltest', 'cpp')
sdldep = dependency('sdl2')
executable('sdltest', 'test.cc', dependencies : sdldep)

And that is really everything you need to do. Now compile it as usual ("mkdir build", "meson build", "cd build", "ninja"). And it just works. No need to specify any paths or touch any GUI things. The command-line program just magically creates an OS X window and draws things there.

#sdl2   #sdl   #meson   #osx   #homebrew  
1
Jussi Pakkanen's profile photo
 
If you prefer you can install the devel framework from SDL's web page and it will work just as magically.
Add a comment...

Jukka Suomela

Announcements  - 
 
PODC 2015 registration is now open, early registration deadline 22 June 2015http://www.podc.org/podc2015/registration/

Student travel grants available, deadline 5 June 2015http://www.podc.org/podc2015/student-grants/

#PODC2015Spain   #distributedcomputing  
1
2
Jukka Suomela's profile photoSajin Koroth's profile photo
 
Also local information (venue, hotels, etc.) is now available here: http://www.podc.org/podc2015/local-information/
Add a comment...

Jukka Suomela

Announcements  - 
 
PODC 2015 awards announced:

Leonid Barenboim will receive the Doctoral Dissertation Award for “Efficient Network Utilization in Locality-Sensitive Distributed Algorithms.”

Leonid Barenboim will receive the Best Paper award for “Deterministic (Δ+1) Coloring in Sublinear (in Δ) Time, in Static, Dynamic and Faulty Networks.”

Mohsen Ghaffari will receive the Best Student Paper award for “Near-Optimal Scheduling of Distributed Algorithms.”

#PODC2015Spain  
4
1
Stephen Paul King's profile photo
Add a comment...

Jukka Suomela

Shared publicly  - 
 
 
New blog post is our joint effort with Sergei Vassilvitskii: "Models for Parallel Computation (Hitchhiker's Guide to Massively Parallel Universes)": http://grigory.us/blog/massively-parallel-universes/
View original post
2
1
Shantanu Sharma's profile photo
Add a comment...
Work
Occupation
Assistant Professor
Jukka Suomela's +1's are the things they like, agree with, or want to recommend.
Why the Security of USB Is Fundamentally Broken | Threat Level | WIRED
www.wired.com

Computer users pass around USB sticks like silicon business cards. Although we know they often carry malware infections, we depend on antivi

It happened: Git 2.0 is here and it's full of goodies - Atlassian Blogs
blogs.atlassian.com

Git 2.0 is here and it’s full of goodies. This major release of `git` has been brewing for a long time and I am excited to go on the hunt in

Best paper awards at ICALP 2014
processalgebra.blogspot.com

The EATCS is proud to announce that the program committees of the three tracks of ICALP 2014 have selected the following papers for the best

Barcode / QR-Code / Bluetooth / RFID / NFC / DAQ / Label Software: Barco...
tec-it.blogspot.com

News on barcode software, 2D bar code software, Bluetooth, Auto-ID, RFID, AIDC, barcode labeling, reporting software, data acquisition and s

Moves
market.android.com

Moves automatically tracks your everyday life and exercise. Just carry your phone in your pocket or bag. FEATURES • Automatic Tracking: Reco

Google Play Книги
market.android.com

Google Play – это настоящий рай для книголюбов. В этом интернет-магазине вас ждут миллионы книг, в том числе бесплатных. Выберите из новинок

GPS Test
market.android.com

The GPS Test app for Android is a utility that shows GPS information read from your phones internal GPS. Will support GLONASS phones. The ap

Google Play Music
market.android.com

Google Play Music makes it easy to discover, play and share the music you love on Android and the web. With our new All Access service, you

Feedly News Reader. Blogs. RSS
market.android.com

"Feedly is what you needly" - David Pogue, New York Times.Feedly is a new way to browse the content of your favorite news sites, rss feeds,

Dropbox
market.android.com

Dropbox 提供免費的服務,讓您可以隨時隨地存取您所有的相片、文件和影片。一旦在電腦上安裝了 Dropbox,您儲存在 Dropbox 的任何檔案都會自動儲存到您所有的電腦、手機及 Dropbox 網站。有了 Dropbox 應用程式,您可以把重要的東西全部帶著走。即使是出門

Andropas Pro
market.android.com

Andropas Pro lisää uusia ominaisuuksia Andropas-ohjelmaan. Tue Andropaksen kehitystä ja osta Andropas Pro.Ominaisuudet: - Suosikkipysäkit ja

younited by F-Secure
market.android.com

With younited you can have all your stuff in a safe cloud. You can access your pictures, videos, music and docs with your Android and other

The selected-papers network
gowers.wordpress.com

This post is to report briefly on a new and to my mind very exciting venture in academic publishing. It's called the Selected Papers Network

What can be decided locally without identifiers? | Abstract Talk
www.abstract-talk.org

Abstract. Do unique node identifiers help in deciding whether a network G has a prescribed property P? We study this question in the context

The On-Line Encyclopedia of Integer Sequences™ (OEIS™)
oeis.org

The On-Line Encyclopedia of Integer Sequences™ (OEIS™). Enter a sequence, word, or sequence number: Hints. Note: Advanced searches are now m

ACM Digital Library
portal.acm.org

www.acm.org - The premier society in computing brings you the Computer Portal.

Fingerpori - HS.fi
www.hs.fi

Löydät Fingerporin Heimon, Allanin ja Mustanaamion HS.fi:stä. Luettavissa myös kaikki stripit vuodesta 2007.

Viivi &amp; Wagner - HS.fi
www.hs.fi

Parhaat stripit ja parisuhteen hoitovinkit. Viivi &amp; Wagner -arkistosta löydät kaiken parisuhteesta sian ja naisen sanoin. Jaa parhaat st

The Geomblog: Models for MapReduce
feedproxy.google.com

Models for MapReduce. I&#39;ve been listening to Jeff Phillips&#39; comparison of different models for MapReduce (he&#39;s teaching a class

Free online dictionary definitions for learners of English ...
www.oxfordadvancedlearnersdictionary.com

Free online dictionary definitions and pronunciations for learners of English from the bestselling Oxford Advanced Learner&#39;s Dictionary.