LLM: hardware connection

Good article about LLM from the hardware/networks perspective. I liked it wasnt a show-off from Juniper products, as I haven’t seen any mention of Juniper kit in deployments of LLM in cloud providers, hyperscalers, etc. The points about Infiniband (the comment at the end about the misconceptions of IB is funny) and ethernet were not new but I liked the VOQ reference.

Still as a network engineer, I feel I am missing something about how to make the best network deployment for training LLM.

Curl, Yaml, scalars, Elixir, git stash

I haven’t watched this video, but looks like the holly book of curl!!!

I'd recommend starting at ~34 minutes.

·You can specify multiple URLS with multiple output options in a single command. Doing this or using globbing (see below) to the same host will use persistent connections and greatly improve performance because the same L5 session is used

·trurl is also made by the project and allows you to programmatically manipulate URLs (change server, path, query parameters, etc.). Pretty neat: https://github.com/curl/trurl

·curl supports URL globbing: curl https://{ftp,www,test}.example.com/img[1-22].jpg -o "foo_#2_#1.jpg"

·By default, curl will resolve requests serially when multiple URLS or globbing is specified, but curl is capable of doing parallel transfers with the -Z or --parallel option. And can do anywhere from 2-300 transfers in parallel. This also has the potential to parallel-ize HTTP/3 transfers even from single URLs.

·You can do curl --help category to get a list of help categories for narrowing down options by categories like http or output

· Long commands for curl can be specified in a file and given to curl either via stdin or -K / --config - These files are essentially just command lines in a file

·You can use the --trace option to provide tcpdump type output from curl. Saving the need to to start tcpdump in the background if you just want to see what's happening from curl

·You can use --connect-to to specify a different DNS name to go to (instead of the one specified in the URL) which is similar to the --resolve option, but doesn't require the user to lookup the IP address ahead of time

·You can override the DNS server that you use to resolve URLs via --dns-ipv4-addr 8.8.8.8 for example

·You can add --libcurl to any curl command and it will spit out C source-code that implements the same command line in C via the library libcurl

·You can set the environment variable SSLKEYLOGFILE to a file name and it will save the runtime TLS secrets to that file, and use that file in WireShark along with a dump of the traffic from tcpdump to see the contents of encrypted HTTP streams

·You can choose to only download files that have changed since the last time they were downloaded with curl via --etag-save <etag_file> and --etag-compare <etag_file>

·You can skip adding the extra -H "Content-Type: application/json" when getting or posting JSON data (with -d), by specifying --json instead of just -d

·You can create JSON easily from the command line with the tool jo: https://github.com/jpmens/jo (basically a reverse jq)

Rant about yaml. And something I learned about yaml some months ago and forgot about it: scalars for making multiline work in yaml.

Elixir: a programming language based on Erlang. Really impressive reports! But still I would like to learn golang (if I ever learn properly python 🙂

git stash: I didnt know about this git command until last week, very handy.

Teufelssee

A friend of mine asked to go on picnic to a nearby lake: Teufelssee. The place was really nice, I could swim and the water was perfect! Although I was murdered by mosquitos… The lake is inside a forest and is huge, really impressive thinking that I was so close to the city. As well, we visited Teufelsberg, there were nice graffiti and good views from the top.

Totally agree!!

Of course!

There are worse thins in life 🙂

As well, the local neighbourhood Grunewald was interesting. While cycling could amazing town houses.

Arroz de pimenton y pasas

This is a recipe from my friend M that is super easy and tasty!

Ingredients:

  • 1.5 cups of paella rice (or risotto) – DONT TRY ANY OTHER RICE TYE
  • 3 cups of boiling water (2:1 ratio with rice)
  • 40g of fresh parsley (if possible, if dried, using 10gr or so)
  • 7 cloves of garlic sliced
  • 1/2 cup of raisins or similar
  • 2 tsp of sweet smoked paprika (I used a Spanish brand)
  • Olive oil to fry garlic and a gulp for the rice.
  • Salt/pepper to taste

Process

  • Pre-heat oven at 180C
  • In a ovenproof container, put the rice, chopped parsley, raisins and paprika. Mix all well.
  • Fry the garlic with plenty of oil.
  • Pour the fried garlic and left over oil into the rice. Mix all well so the oil reaches all rice.
  • Pinch of salt/pepper.
  • Add 3 cups of boiling water. Mix all well.
  • Put the container into the oven for 30 minutes.
  • Taste the rice before removing from the oven.

Ready to eat!

Before putting into the oven and before adding the water:

After taking it out from the oven:

Very tasty! Although I originally used more than 2 tsp of paprika. So for next time, I will stick with just 2 and will see