Page 1 of 5

UPS wars: smelting challenge (design competition)

Posted: Sat Aug 12, 2017 10:56 am
by TBTerra2
Note: this is a repost of a reddit thread, and will be the perminant location for this thread (as reddit threads tend to die after 48hours)

As has been the case for a while now, the design philosophy of megabases is "bigger and faster, until your computer cant handle it". Due to this the major challenge is not necessarily to build big, but you build UPS efficient.

This leads us to the challenge I am proposing: a mining and smelting efficiency challenge.

Challenge

The concept is simple. The map consists of a giant copper ore patch 300 tiles east of spawn, and a set of void chests 300 tiles west of spawn. You must mine some ore, turn it into plate and dump it in the void chest and you need to do it using as little UPS as possible.

Rules
  • You may not move the ore patch (although you are expected to build on it, its only so big so people can set up multiple outputs if they wish)
  • you may move the void chests, but not past the hazard concrete at -300 X
  • avoid using void chests inserted straight from smelters, think of them as part of the plate pickup system (they work well as the requesters for a plate pickup station if your doing smelt at base, or plate dropoff if your doing smelt at patch)
  • You may use as much space as you like (custom mapgen means the unexplored map area will all be empty usable space)
  • You may use any mods you want to make it, but it must run in vanilla (the void-chest mod will be the only mod used for judging, but creative mode is recommended for building the design)
  • The map already has all non infinite research, mining productivity 200 and robot speed 15. you may not increase this further
Scoring

The score of a design will be the number of plates produced per ms of computation taken, as such bigger is not always better as it may be more of a UPS hog

Getting started Submissions

Submissions can be linked to here, sent to me via pm or put on the thread on reddit

Existing submissions/scoring (only scores and rough descriptions given to minimize idea theft, all designs will be made public when winner is announced)

Prizes

Currently I will be providing a small Prize for the best design, and will accept if people want to chip in to the prize pool, but the main prize will be that of improving the community's future bases

UPDATES:

* made the save compatible with stable release
* made a rules clarification as to the use of void chests
* added a submissions/scores spreadsheet

Re: UPS wars: smelting challenge (design competition)

Posted: Sat Aug 12, 2017 2:20 pm
by Xtrafresh
Cool stuff! I'm absolutely going to give it a go. Just to be sure, we are judging here on continuous throughput. So you'll let the base run for a while and then take a 10m measurement of what production was?

Re: UPS wars: smelting challenge (design competition)

Posted: Sat Aug 12, 2017 2:49 pm
by impetus maximus
might give this a go.
[edit] question. UPS on who's machine, yours or our own?
popcorn.George.gif
popcorn.George.gif (495.05 KiB) Viewed 15635 times

Re: UPS wars: smelting challenge (design competition)

Posted: Sat Aug 12, 2017 2:52 pm
by TBTerra2
Xtrafresh wrote:Cool stuff! I'm absolutely going to give it a go. Just to be sure, we are judging here on continuous throughput. So you'll let the base run for a while and then take a 10m measurement of what production was?
yes indeed, we are working on average continuous throughput (you could make something that spikes 1M/min for 5 mins once an hour but it would be judged as a 83.3k/min design)
question. UPS on who's machine, yours or our own?
my machine (i5-4670k@4.2, 16GB 1600MHz ram), though depending on the entry count/closeness of the best, i may be testing with differnt cpu/ram setups to see there is always a best design or if it depends on how cpu/ram limited you are

Re: UPS wars: smelting challenge (design competition)

Posted: Sat Aug 12, 2017 8:20 pm
by Xtrafresh
TBTerra2 wrote:my machine (i5-4670k@4.2, 16GB 1600MHz ram), though depending on the entry count/closeness of the best, i may be testing with differnt cpu/ram setups to see there is always a best design or if it depends on how cpu/ram limited you are
It might even make sense to undeclock your CPU for these tests. We're trying to measure the impact on the CPU, so you want it to be weak so the measured effect is strong. Basically, we don't want to ever see 60UPS for this one, that would spoil the data.

This one has me intrigued! It's quite a rabbithole, once you think about it, and designing for maximum throughput/UPS makes you ditch some long-held building habits.
I'm reasoning that ... oh, lol, this is a competition! I shouldn't spill the beans yet :D
What is the deadline on submissions for you?

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 1:31 am
by TBTerra2
Xtrafresh wrote:What is the deadline on submissions for you?
as its not an overly complex challenge probably a week tops. but ill accept later submissions to be tested and go onto the comparison (they just wont be eligible for any prizes i award)

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 1:55 am
by Xtrafresh
\Fair enough! I think I'll give you mine today already.

Another question: You say I can move the void chests, can I add more? Or, failing that, I suggest you prescribe a train length, just to keep things realistic My current 34-car trains might not fit that bill exactly :p

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 2:55 am
by TBTerra2
Xtrafresh wrote:\Fair enough! I think I'll give you mine today already.
excellent, the tests are mostly automated and take about half an hour before i can work out a score
Another question: You say I can move the void chests, can I add more? Or, failing that, I suggest you prescribe a train length, just to keep things realistic My current 34-car trains might not fit that bill exactly :p
i would request that you keep the number of void chests limited to 360 or lower. this is because i have a benchmark for how much ups they take, and so i can remove that time from the benchmark your submission will do.

if you are really in a situation where you need extra void chests to get the throughput, then add them but tell me how many there are so i can re-calibrate the correction math

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 4:55 am
by quyxkh
Just to be clear, you said we could move the void chests but didn't say we could add more, we're limited to the 360 void chests?

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 5:43 am
by Optera
What about energy?
The devs already confirmed solar has least impact on ups of all power sources. So do we also have to prove it again or can we just use an energy source from creative mode?

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 6:14 am
by Xtrafresh
quyxkh wrote:Just to be clear, you said we could move the void chests but didn't say we could add more, we're limited to the 360 void chests?
He says he's doing some math in the background that needs to be redone if we change the number of chests. It would be a courtesy to not change the number, not saddle the man who is organizing this cool thing with too much work. Can I suggest that if you do change the number, you make it a nice multiple of 360 to make the math go easy? 720 or 1440 chests should be enough. :D

Although doing some calculations makes me think it might be on the low side. Even with my relatively low-yield solution I am getting about 5K/s of output, and 360 stack inserters at 27items/s have a throughput of not even twice that. I'm pretty sure anyone who puts his mind to it can get a whackton more output out of that ore patch. We need the high numbers to make that poor 4670 of his buckle :twisted:
Optera wrote:What about energy?
The devs already confirmed solar has least impact on ups of all power sources. So do we also have to prove it again or can we just use an energy source from creative mode?
I also wonder about this. The original post suggests we should be building solars to power the monster. I think that's fair, not because of the challenge of figuring out that DUH they are the best for UPS, but to factor in the power usage of the design.

So far, I just plonked down a creative mode accumulator, but that won't fly if you test without that mod :)

Putting the finishing touches on my machine now. You'll have it tomorrow morning!

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 7:56 am
by DaveMcW
Did you intend for pollution to be enabled? This forces people to optimize around the edges to reduce pollution.

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 8:40 am
by TBTerra2
Optera wrote:What about energy?
The devs already confirmed solar has least impact on ups of all power sources. So do we also have to prove it again or can we just use an energy source from creative mode?
/c game.player.insert('electric-energy-interface')
this is the vanilla equivalent to the creative energy source, and seems to be on par with solar for UPS cost
DaveMcW wrote:Did you intend for pollution to be enabled? This forces people to optimize around the edges to reduce pollution.
Pollution is intentionally enabled but in 0.15 it has minimal performance hit

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 9:12 am
by aaargha
Optimized the void chests a bit by looping with stride:

Code: Select all

function ontick(event)
	for index=game.tick%global.void_chest.interval+1,#global.void_chest.chests,global.void_chest.interval do
		local void_chest = global.void_chest.chests[index]
		if void_chest and void_chest.valid then
			void_chest.clear_items_inside()
		else
			table.remove(global.void_chest.chests, index)
		end
    end
end
Seems to void everything and adding/removing chests also seems to work.

Benchmarking mod update times with about 32k chests: old implementation ~15.8ms, new ~1.5ms.

Should make the number of void chests a non issue :)

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 9:18 am
by TBTerra2
aaargha wrote:Optimized the void chests a bit by looping with stride:
the reason i didnt do that is that lua tables cant garentee that they have consecutive indexes, but if it seems to work, ill push it on void chest 0.0.2

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 9:58 am
by Xtrafresh
Ok, problem. I am mining the whole ore patch with direct insertion optimized and boosted as far as I can, and it's still running at 60/60. Ryzen 1600X at stock speeds shouldn't be THAT much faster than your OCed Intel, so i'm afraid you'll have to underclock to do a valid test, or give me a bigger ore patch :D

I've added the map save, but there's not all that much to test, unless your machine does get UPS limited by it. 60 UPS, 300K/m output. It's crazy how 43 rows of 17 pairs of furnaces smelting at 3,42/s all come down to such a beautifully round number :D

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 10:12 am
by TBTerra2
Xtrafresh wrote:Ok, problem. I am mining the whole ore patch with direct insertion optimized and boosted as far as I can, and it's still running at 60/60. Ryzen 1600X at stock speeds shouldn't be THAT much faster than your OCed Intel, so i'm afraid you'll have to underclock to do a valid test, or give me a bigger ore patch :D

I've added the map save, but there's not all that much to test, unless your machine does get UPS limited by it. 60 UPS, 300K/m output. It's crazy how 43 rows of 17 pairs of furnaces smelting at 3,42/s all come down to such a beautifully round number :D
i am running with the --benchmark flag, which means the game will run as fast as it can (some of the designs ive tested so far run at nearly 600UPS)

ill test yours and add it to the spreadsheet

as yours is 3 units sharing 1 logistics network, you might get a better score with only one, so the bots arnt trying to path all the way across the ore patch

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 9:54 pm
by Xtrafresh
Ahhh that makes sense now! Ok, scaled her all the way back down.

How can I test this for myself? I don't want to spam you with designs, but I have a few more ideas. It would help if I could just test myself and send the best one. :)

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 10:06 pm
by TBTerra2
Xtrafresh wrote:Ahhh that makes sense now! Ok, scaled her all the way back down, here's v2.
You havent linked or attached anything to your post (although this seems to be happening to many people trying to send me designs)
How can I test this for myself? I don't want to spam you with designs, but I have a few more ideas. It would help if I could just test myself and send the best one. :)
for testing timing, i am launching the non steam version from command line using the following command:

Code: Select all

factorio --benchmark "save name" --benchmark-ticks 100000
score is proportional to (plates per min)/(time to simulate)

Re: UPS wars: smelting challenge (design competition)

Posted: Sun Aug 13, 2017 10:09 pm
by Xtrafresh
Forgive my ignorance, where does this code go? Just win+R?